Rails 6.0 的多数据库使用

Multiple DB usage with Rails 6.0

好吧,我已经在网上阅读了很多关于此的内容,但我无法解决我面临的问题。

我想要的是能够从一个 Rails 项目的多个数据库中获取和存储数据。但问题是,当我为 user_db_1.rb 和 user_db_2.rb 等另一个数据库创建另一个模型时,当 user_db_2.rb 下的 establish_connection 方法被触发时,我的所有项目都开始从db_2。我希望我的所有模型都在主数据库上 运行 除了我设置一些自定义的东西来从 db_2.

获取和保存数据

在 Ruby 和 Rails 上实施此方法的正确方法是什么?

Rails版本6.x支持读取和更新记录from/to多个数据库。

接下来,link会有用

我们必须明确指定需要在模型级别使用哪个数据库。

class PrimaryModel < ApplicationRecord
  connects_to database: { 
    writing: :primary_db, 
    reading: :secondary_db 
  }
end

相应的数据库配置,database.yml 将是

production:
  primary_db:
    database: prima_database
    username: root
    password: <%= ENV['ROOT_PASSWORD'] %>
    adapter: mysql2
  secondary_db:
    database: sec_database
    username: root
    password: <%= ENV['ROOT_READONLY_PASSWORD'] %>
    adapter: mysql2
    replica: false