Ruby on rails 在两个数据库中复制模型的活动记录操作
我们有许多来自世界各地的客户,他们的要求之一是在美国或欧洲存储数据 要做到这一点,我们的一个模型应该在美国/欧洲的两个数据库中复制信息,这意味着如果模型被更新,它还应该为第二个数据库启动更新。若创建了新记录,那个么它应该在第一个数据库中创建,然后在第二个数据库中创建。所以基本上它应该复制AR操作,除了在两个数据库中选择 我已更新database.yml以存储两种数据库配置:Ruby on rails 在两个数据库中复制模型的活动记录操作,ruby-on-rails,ruby,Ruby On Rails,Ruby,我们有许多来自世界各地的客户,他们的要求之一是在美国或欧洲存储数据 要做到这一点,我们的一个模型应该在美国/欧洲的两个数据库中复制信息,这意味着如果模型被更新,它还应该为第二个数据库启动更新。若创建了新记录,那个么它应该在第一个数据库中创建,然后在第二个数据库中创建。所以基本上它应该复制AR操作,除了在两个数据库中选择 我已更新database.yml以存储两种数据库配置: development: adapter: mysql2 encoding: utf8mb4 host: 12
development:
adapter: mysql2
encoding: utf8mb4
host: 127.0.0.1
username: xx
password: xx
database: _
pool: 25
development_usa:
adapter: mysql2
encoding: utf8mb4
host: 127.0.0.1
username: xx
password: xx
database: _usa
pool: 25
在那之后,我从逻辑上考虑将操作重写为save,但是知道有很多方法可以做,比如.save.update\u属性,并查看它们的源代码,它们都调用不同的方法,所以重写所有这些函数太费事了
提交后是否有办法在两个数据库中克隆一个模型?您应该尝试octopus gem,它允许以下功能
复制
碎片
复制+分片
我脑子里的一个粗略想法是与另一个数据库建立连接。然后有一个after_commit回调,在一个数据库中完成一个操作后会触发该回调。此回调在第二个数据库中重复相同的操作。我希望这能触发一个想法?你也可以在触摸对象时使用触摸后回调。是的,在发布关于触摸后提交/触摸后的问题后,立即触发触摸后回调。这应该作为评论而不是答案发布。