Heroku Rails 6 множественное соединение не работает - PullRequest
1 голос
/ 23 октября 2019

У меня есть проект, работающий на 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'
...