在rails中从mongodb迁移到postgresql

时间:2013-09-13 16:40:01

标签: ruby-on-rails mongodb postgresql mongomapper

我在Rails中使用带有mongo_mapper gem的MongoDB,项目足够大。有什么办法可以将数据从Mongoid迁移到Postgresql吗?

1 个答案:

答案 0 :(得分:15)

您应该研究一些自动迁移/复制工具,如MoSQL:https://stripe.com/blog/announcing-mosql

此迁移的一个有风险的策略是将您的代码库转换为使用postgres和所有模型,将您的站点置于维护模式,迁移数据库,部署新代码并重新启动它。但是,这需要大量的停机时间和发生错误或数据丢失的风险。

更安全但更复杂的策略是设置数据自动迁移到新数据库以同步数据库。然后,应用程序中的每个操作都会写入两个数据库。在每次事务之后,验证两个数据库之间的数据是否同步并从Mongo读取。这允许您在找到错误时修复错误并突出显示任何不一致。一旦您不再发现差异,您可以关闭写入​​mongo并退出该数据库,删除mongo模型/代码,然后继续。