【发布时间】:2020-03-02 22:31:12
【问题描述】:
我是初级 RoR 开发人员。 我有这个架构:
- 不同主机上的 2 个数据库
- 1 个应用程序在 database.yml 上设置了多个数据库
在我的第一个数据库中,我将Vacancies 存储在第二个数据库中,我存储Users
空位控制器
def create
@vacancy = Vacancy.new(vacancy_params)
ActiveRecord::Base.connected_to(database: { writing: :secondary }) do
@vacancy.save
end
end
如您所见,我在辅助数据库上使用 rails 6 activeRecord 功能进行存储。
Vacancy.rb 模型有下一个关系: 属于_to:用户
User.rb 模型有下一个关系: has_many:空缺,依赖::delete_all
所以第一个数据库没有空缺表,第二个数据库没有用户表。
当我尝试创建 Vacancy 时出现此错误:
Mysql2::Error: Table 'secondary.users' doesn't exist
我认为这是因为第一个数据库没有空缺表,第二个数据库没有用户表。 我也不能为每个数据库创建任务表。 我该如何解决?
谢谢
【问题讨论】:
标签: ruby-on-rails activerecord ruby-on-rails-6