#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"
(Не публикуйте никаких секретов ни в каких ответах, например, пароли БД или полные строки подключения.)