ROR — ActiveRecord ::ConnectionNotEstablished: нет пула соединений для PublicActivity ::ORM ::ActiveRecord::Activity

#ruby-on-rails #activerecord #orm #activesupport #public-activity

#ruby-on-rails #activerecord #orm #activesupport #публичная активность

Вопрос:

Я пытаюсь выполнить небольшое обновление с ruby 2.3.1 до 2.3.8 и сталкиваюсь с некоторыми проблемами. Все работало нормально, пока я не запустил команду rake db:create и не обнаружил следующую ошибку —

 rake aborted!
ActiveRecord::ConnectionNotEstablished: No connection pool for PublicActivity::ORM::ActiveRecord::Activity
/home/user/application/engines/admin/lib/admin/activity_extension.rb:10:in `<module:Admin>'
/home/user/application/engines/admin/lib/admin/activity_extension.rb:1:in `<top (required)>'
/home/user/application/engines/admin/lib/admin/engine.rb:8:in `<top (required)>'
/home/user/application/engines/admin/lib/admin.rb:1:in `require'
/home/user/application/engines/admin/lib/admin.rb:1:in `<top (required)>'
/home/user/application/config/application.rb:17:in `<top (required)>'
/home/user/application/Rakefile:4:in `<top (required)>'
 

Я также отследил ошибку и нашел следующую информацию —

 rake aborted!
ActiveRecord::ConnectionNotEstablished: No connection pool for PublicActivity::ORM::ActiveRecord::Activity
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/activerecord-4.2.11.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:570:in `retrieve_connection'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/activerecord-4.2.11.3/lib/active_record/connection_handling.rb:113:in `retrieve_connection'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/activerecord-4.2.11.3/lib/active_record/connection_handling.rb:87:in `connection'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/activerecord-4.2.11.3/lib/active_record/model_schema.rb:230:in `table_exists?'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/public_activity-1.6.4/lib/public_activity/orm/active_record/activity.rb:47:in `<class:Activity>'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/public_activity-1.6.4/lib/public_activity/orm/active_record/activity.rb:22:in `<module:ActiveRecord>'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/public_activity-1.6.4/lib/public_activity/orm/active_record/activity.rb:19:in `<module:ORM>'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/public_activity-1.6.4/lib/public_activity/orm/active_record/activity.rb:18:in `<module:PublicActivity>'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/public_activity-1.6.4/lib/public_activity/orm/active_record/activity.rb:3:in `<top (required)>'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/public_activity-1.6.4/lib/public_activity/orm/active_record.rb:4:in `require_relative'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/public_activity-1.6.4/lib/public_activity/orm/active_record.rb:4:in `<top (required)>'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/activesupport-4.2.11.3/lib/active_support/dependencies.rb:274:in `require'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/activesupport-4.2.11.3/lib/active_support/dependencies.rb:274:in `block in require'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/activesupport-4.2.11.3/lib/active_support/dependencies.rb:240:in `load_dependency'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/activesupport-4.2.11.3/lib/active_support/dependencies.rb:274:in `require'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/public_activity-1.6.4/lib/public_activity.rb:53:in `inherit_orm'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/public_activity-1.6.4/lib/public_activity/models/activity.rb:4:in `<module:PublicActivity>'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/public_activity-1.6.4/lib/public_activity/models/activity.rb:3:in `<top (required)>'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/activesupport-4.2.11.3/lib/active_support/dependencies.rb:274:in `require'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/activesupport-4.2.11.3/lib/active_support/dependencies.rb:274:in `block in require'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/activesupport-4.2.11.3/lib/active_support/dependencies.rb:240:in `load_dependency'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/activesupport-4.2.11.3/lib/active_support/dependencies.rb:274:in `require'
/home/user/application/engines/admin/lib/admin/activity_extension.rb:10:in `<module:Admin>'
/home/user/application/engines/admin/lib/admin/activity_extension.rb:1:in `<top (required)>'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/activesupport-4.2.11.3/lib/active_support/dependencies.rb:274:in `require'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/activesupport-4.2.11.3/lib/active_support/dependencies.rb:274:in `block in require'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/activesupport-4.2.11.3/lib/active_support/dependencies.rb:240:in `load_dependency'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/activesupport-4.2.11.3/lib/active_support/dependencies.rb:274:in `require'
/home/user/application/engines/admin/lib/admin/engine.rb:8:in `<top (required)>'
/home/user/application/engines/admin/lib/admin.rb:1:in `require'
/home/user/application/engines/admin/lib/admin.rb:1:in `<top (required)>'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/bundler-1.17.3/lib/bundler/runtime.rb:81:in `require'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/bundler-1.17.3/lib/bundler/runtime.rb:81:in `block (2 levels) in require'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/bundler-1.17.3/lib/bundler/runtime.rb:76:in `each'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/bundler-1.17.3/lib/bundler/runtime.rb:76:in `block in require'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/bundler-1.17.3/lib/bundler/runtime.rb:65:in `each'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/bundler-1.17.3/lib/bundler/runtime.rb:65:in `require'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/bundler-1.17.3/lib/bundler.rb:114:in `require'
/home/user/application/config/application.rb:17:in `<top (required)>'
/home/user/.rbenv/versions/2.3.8/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/home/user/.rbenv/versions/2.3.8/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
/home/user/application/Rakefile:4:in `<top (required)>'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/rake-13.0.3/lib/rake/rake_module.rb:29:in `load'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/rake-13.0.3/lib/rake/rake_module.rb:29:in `load_rakefile'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/rake-13.0.3/lib/rake/application.rb:703:in `raw_load_rakefile'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/rake-13.0.3/lib/rake/application.rb:104:in `block in load_rakefile'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/rake-13.0.3/lib/rake/application.rb:186:in `standard_exception_handling'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/rake-13.0.3/lib/rake/application.rb:103:in `load_rakefile'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/rake-13.0.3/lib/rake/application.rb:82:in `block in run'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/rake-13.0.3/lib/rake/application.rb:186:in `standard_exception_handling'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/rake-13.0.3/lib/rake/application.rb:80:in `run'
/home/user/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0/gems/rake-13.0.3/exe/rake:27:in `<top (required)>'
/home/user/.rbenv/versions/2.3.8/bin/rake:22:in `load'
/home/user/.rbenv/versions/2.3.8/bin/rake:22:in `<main>'
 

Я не могу найти основную причину ошибки. Пожалуйста, помогите!

Редактировать —

Я попытался установить приложение с той же версией ruby в другой системе, и оно по-прежнему показывает ту же ошибку. Есть ли какие-либо проблемы с конфигурацией новой системы?

Это файл database.yml —

 default: amp;default
  adapter: postgresql
  encoding: unicode
  username: -----
  password: -----
  host: localhost
  port: 5432
  pool: 5

development:
  <<: *default
  database: -----
 

Комментарии:

1. если вы обновляетесь, вам нужно создать новую базу данных? разве вы не собираетесь продолжать работу с существующим?

2. @jad Я клонировал существующий проект в другой системе и пытаюсь обновить его там.

3. можете ли вы отредактировать свой вопрос и добавить копию конфигурации вашей базы данных (при необходимости скрыв пароли)?

4. @jad Конечно! вы можете увидеть файл database.yml. Я добавил код.

5. установлен ли у вас postgres на вашем локальном компьютере, и можете ли вы перечислить базы данных, которые в нем используются psql -l ?

Ответ №1:

добавление в качестве ответа для включения блоков кода:

моя база данных.yml:

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

development:
  <<: *default
  database: project-dev

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  <<: *default
  database: project-test

production:
  <<: *default
  database: project
 

адаптер принимает локальный хост и порт и принимает имя пользователя на основе текущего имени пользователя (я получаю к нему доступ без пароля).

Я не знаю pool timeout , важны ли значения or, но эта конфигурация работает для меня.

Комментарии:

1. хорошо, вы можете вставить в свой вопрос свой Gemfile.lock ? Я собираюсь посмотреть, смогу ли я настроить свою среду с теми же версиями