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
好吧,我已经在网上阅读了很多关于此的内容,但我无法解决我面临的问题。
我想要的是能够从一个 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