У меня есть проект, работающий на Rails 6 с несколькими конфигурациями базы данных.
Это моя конфигурация database.yml
default: &default
adapter: postgresql
encoding: unicode
# # For details on connection pooling, see Rails configuration guide
# # https://guides.rubyonrails.org/configuring.html#database-pooling
pool: <%= ENV.fetch("RAILS_MAX_THREADS")%>
bn: &bn
adapter: postgresql
database: <%= ENV.fetch('DB_NAME_BN')%>
default: &default
adapter: postgresql
pool: <%= ENV.fetch("RAILS_MAX_THREADS")%>
timeout: 5000
development:
primary:
<<: *default
database: <%= ENV.fetch("DB_NAME")%>
bn:
<<: *bn
production:
primary:
url: <%= ENV.fetch('DATABASE_URL') %>
bn:
url: <%= ENV.fetch('DB_NAME_BN')%>
Эта конфигурация корректно работает в разработке, однако при развертываниик Heroku приложение вылетает.
Ошибка выглядит следующим образом:
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
bundler: failed to load command: puma (/app/vendor/bundle/ruby/2.6.0/bin/puma)
Похоже, что rails не учитывает трехуровневую конфигурацию, поэтому предполагается наличие локального сервера. Я пытался настроить файл несколькими способами, но ни один из них не работает в Heroku. Я следовал конфигурации puma.rb, предложенной в Heroku , но это не имеет никакого значения.
Есть какие-нибудь мысли о том, как я могу решить эту проблему? Это проблема Rails или PgAdapter?
Соответствующая часть моего Gemfile -
ruby '2.6.3'
gem 'rails', '~> 6.0.0'
gem 'pg', '>= 0.18', '< 2.0'
gem 'puma', '~> 3.11'