从 rails 5 迁移到 rails 6

migrating from rails 5 to rails 6

我们正在从 rails 5 更新到 rails 6。我们目前正在使用 ar_octopus gem 进行数据库分片。

看起来 rails 默认支持 database shrading 从 rails 6.

我已经像这样更新了 database.yml 文件

test:
  primary:
    adapter: postgresql
    database: test
    username: postgres
    password: root
    host: localhost
  main:
    adapter: postgresql
    user: postgres
    database: "<%= ENV['API_MAIN_DATABASE_NAME'] %>"
    host: "<%= ENV['API_DATABASE_HOST'] %>"
    password: "<%= ENV['API_DATABASE_PASSWORD'] %>"
    database_tasks: false
    replica: false
  prediction:
    adapter: postgresql
    user: postgres
    database: "<%= ENV['API_PREDICTION_DATABASE_NAME'] %>"
    host: "<%= ENV['API_DATABASE_HOST'] %>"
    password: "<%= ENV['API_DATABASE_PASSWORD'] %>"
    database_tasks: false
    replica: false
  onshore:
    adapter: postgresql
    user: postgres
    database: "<%= ENV['API_US_ONSHORE_DATABASE_NAME'] %>"
    host: "<%= ENV['API_DATABASE_HOST'] %>"
    password: "<%= ENV['API_DATABASE_PASSWORD'] %>"
    database_tasks: false
    replica: false

如果我 运行 RAILS_ENV=test rails db:migrate 看起来它仍在尝试 运行 迁移所有数据库。

database_tasks: false 似乎没有按预期工作。

可能是我遗漏了什么,它在 rails 6 中不可用吗?

我需要在 rails 7 上才能使用吗?

database_tasks: false does not seem to work as intended. may be i am missing something, is it not available in rails 6? do i need to be on rails 7 for this to be available?

是的,database_tasks: 选项是由 https://github.com/rails/rails/pull/42794

7.0 中添加的