ActiveRecord ::ConnectionNotEstablished (пул соединений с «основным» не найден.)

#ruby-on-rails #postgresql #rails-activerecord

#ruby-on-rails #postgresql #рельсы-activerecord

Вопрос:

Таблица postgresql выглядит следующим образом:

       id |                  name                   | size |              md5sum
     ---- ----------------------------------------- ------ ----------------------------------
       1 |         MyPreferredGenomeName           | 1000 | df768fde8e10e15511c41895363bcce6
 

Я пытаюсь получить данные:

 myData = myClass.find_by name: "MyPreferredGenomeName" # also tried with other columns
# or 
myData = myClass.where name: "MyPreferredGenomeName" 
 

и я получаю ошибку, указанную в заголовке, из activerecord-5.2.4.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:1032:in retrieve_connection «.

У меня нет самого элементарного понимания того, что происходит… Справка.

Кроме того, что означает «основной»?

Спасибо!

Ответ №1:

Я подозреваю, что ваш config/database.yml не настроен правильно.

В этом файле у вас должно быть что-то похожее на:

 ...
default: amp;default
  adapter: postgresql
  encoding: unicode
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

development:
  <<: *default
  database: database_name_development
...
 

Вы хотите убедиться, что database_name_development это имя базы данных в вашем локальном экземпляре PostgreSQL. Действительно ли вызывается ваша база primary данных, поскольку это то, о чем, похоже, говорит ошибка.

Вы показываете вывод psql с таблицей, названной MyPreferredGenomeName так, что любая база данных, которая находится в, необходима database.yml .

Вы можете проверить, какую базу данных Rails ищет с помощью:

 rails console
ActiveRecord::Base.connection.current_database
=> "database_name_development"
 

(Не публикуйте никаких секретов ни в каких ответах, например, пароли БД или полные строки подключения.)