2

导轨:gem "rails", "6.0.0.rc2"

我有多个数据库。没有一个是复制品(我正在阅读和写作所有 3 个):在 rails 6 之前,我使用了 multiverse gem,一切看起来都很好。我遵循 rails 6 并将 multiverse 更改为 rails 6 文档。但是我无法在 Heroku 中运行 db:migrate,即使一切都在本地完美运行。

class ApplicationRecord < ActiveRecord::Base
  self.abstract_class = true
  establish_connection :primary
end

.

class ObsRecord < ActiveRecord::Base
  self.abstract_class = true
  establish_connection :obs
end

.

class AbcRecord < ActiveRecord::Base
  self.abstract_class = true
  establish_connection :abc
end

数据库.yml

staging:
  primary:
    <<: *default
    adapter: postgresql
    url:  <%= ENV['DATABASE_URL'] %>
    username: <%= ENV['DATABASE_USER'] %>
    password: <%= ENV['DATABASE_PASSWORD'] %>
  obs:
    <<: *default
    adapter: postgresql
    url: <%= ENV['OBS_DATABASE_URL'] %>
    username: <%= ENV['OBS_DATABASE_USER'] %>
    password: <%= ENV['OBS_DATABASE_PASSWORD'] %>
    migrations_paths: db/obs_migrate
  abc:
    <<: *default
    adapter: postgresql
    url: <%= ENV['ABC_DATABASE_URL'] %>
    username: <%= ENV['ABC_DATABASE_USER'] %>
    password: <%= ENV['ABC_DATABASE_PASSWORD'] %>
    migrations_paths: db/abc_migrate

rails db:migrate什么都没有显示,好像没有迁移但是当我运行时rails c我看到以下错误。是的,我确信最新的代码被推送了。

heroku restart没有帮助

Heroku错误:

Traceback (most recent call last):
    102: from /app/bin/rails:4:in `<main>'
    101: from /app/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.0.rc2/lib/active_support/dependencies.rb:322:in `require'
.
.
4: from /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0.rc2/lib/active_record/connection_handling.rb:50:in `establish_connection'
      3: from /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0.rc2/lib/active_record/connection_handling.rb:180:in `resolve_config_for_connection'
      2: from /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0.rc2/lib/active_record/connection_adapters/connection_specification.rb:140:in `resolve'
      1: from /app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0.rc2/lib/active_record/connection_adapters/connection_specification.rb:219:in `resolve_connection'.
.

/app/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.0.rc2/lib/active_record/connection_adapters/connection_specification.rb:251:in `resolve_symbol_connection': The `abc` database is not configured for the `staging` environment. (ActiveRecord::AdapterNotSpecified)

Available databases configurations are:

default
prod_uat_default
development
test
staging
uat
production

^^ 我期待小学、abc 和 obs 正在分期。

此外,rails -T没有显示关于我的第二个和第三个数据库的任何内容

4

1 回答 1

0

使用了 6.0-stable 版本并且它工作: gem "rails", github: "rails/rails", branch: "6-0-stable"

于 2019-08-04T05:04:40.367 回答