0

我有一个 Rails 3 应用程序——它是一个研究各种项目的界面。我们不希望研究人员不小心将 duff 数据放入用户站点,因此我们使用dataentry研究人员使用的环境和production面向用户的环境将应用程序分开。研究人员将新数据放入dataentry数据库,由编辑检查并签字;数据涵盖了 30 多个模型,这些模型具有各种关联性belongs_tohas_many

我想做的是研究如何定期将数据从数据输入环境移动到实时环境。我真的不想每次都丢弃production数据库并转储dataentry到其中,因为我不想丢失例如在实时站点上注册的新用户的订阅。

我见过的在环境之间迁移数据的大多数解决方案都涉及 a) 将内容转储到 YAML 或类似的,或者 b) 将整个表加载到 Ruby 数组中,切换数据库连接,并each在数组上执行循环以加载它们回来。当表非常大时,这两种方法似乎都不是最理想的。

我可以(可以想象)mysqldump从所有相关表格中提取dataentry结果并将结果输入mysql production,但它看起来有点像一个钝器。

在 Rails 中管理这种“数据暂存”是否有任何最佳实践?

4

1 回答 1

0

我最终pt-table-sync选择了一项 cron 工作。

于 2013-04-08T06:37:37.437 回答