ruby-on-rails - 在没有 SQL 复制的情况下保持表在 Rails 应用程序之间同步?

标签 ruby-on-rails rest replication

我有一个 Rails 应用程序,它使用两个与我拥有的另一个 Rails 应用程序相同的模型。在两个模型之间保持数据同步的最佳方法是什么?

由于托管限制和引用复制数据的内容是依赖的,MySQL 复制可能无法实现 => :destroy 意味着 mysql 复制将导致指向已删除的复制数据的内容保留。

简而言之,在应用程序级别,在每个模型的基础上,在两个 Rails 应用程序之间进行复制的最佳方法是什么?我是否必须使用 REST 破解我自己的复制,还是有更好的方法?

我应该补充一点,数据变化不频繁,一天最多几次,而且集合总是少于 50k 行。

编辑:为了回应托比在下面的评论,数据都是单向的。

最佳答案

这不是一个具体的答案,而是考虑某种排队机制。应用程序 A 进行更改并写入队列和数据库。 “队列”可以是数据库中的一个表,上面写着“App A changed Model M with id I”。然后,这两个应用程序都可以有一个进程来轮询此表并应用更改。

当双方修改同一个对象时就会遇到麻烦。

关于ruby-on-rails - 在没有 SQL 复制的情况下保持表在 Rails 应用程序之间同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/799935/

相关文章:

ruby-on-rails - 将辅助模块添加到 Rspec

rest - 如何获取sails中action2中的查询参数

javascript - AngularJs : Restangular

postgresql - "PostgreSQL Streaming Replication"适合这个用例吗?

MySQL 复制 - 多个主服务器(不同的 d/bs)复制到同一从服务器

ruby-on-rails - 为什么 Rails 在生产中无法检测到 AJAX 请求?

ruby-on-rails - Rails 使用多个字段更新单个属性

ruby-on-rails - 如何在以文本形式存储在数据库中的 json 字段中使用 Activerecord 进行搜索

javascript - 在浏览器中通知客户端销毁服务器上的 Spring Session?

mysql - 将 MySQL 从属移动到新硬盘 - 我需要 mysqld-relay-bin 日志吗?