我有一个 Rails 3 应用程序——它是一个研究各种项目的界面。我们不希望研究人员不小心将 duff 数据放入用户站点,因此我们使用dataentry
研究人员使用的环境和production
面向用户的环境将应用程序分开。研究人员将新数据放入dataentry
数据库,由编辑检查并签字;数据涵盖了 30 多个模型,这些模型具有各种关联性belongs_to
。has_many
我想做的是研究如何定期将数据从数据输入环境移动到实时环境。我真的不想每次都丢弃production
数据库并转储dataentry
到其中,因为我不想丢失例如在实时站点上注册的新用户的订阅。
我见过的在环境之间迁移数据的大多数解决方案都涉及 a) 将内容转储到 YAML 或类似的,或者 b) 将整个表加载到 Ruby 数组中,切换数据库连接,并each
在数组上执行循环以加载它们回来。当表非常大时,这两种方法似乎都不是最理想的。
我可以(可以想象)mysqldump
从所有相关表格中提取dataentry
结果并将结果输入mysql production
,但它看起来有点像一个钝器。
在 Rails 中管理这种“数据暂存”是否有任何最佳实践?