在Heroku上从SQLite3迁移到Mongo?

时间:2011-07-18 00:47:21

标签: ruby-on-rails mongodb sqlite heroku mongomapper

我目前正在使用带有简单的帖子和图像共享应用程序的SQLite3,类似于Rails 3 Hartl教程(就数据库结构而言)。但是我想转移到Mongo以获得未来的可扩展性/学习。

我也在Heroku上托管,并使用15 GB的共享数据库。我尝试安装MongoHQ和MongoMapper(根据Heroku的说明)进行过渡,并根据Heroku的支持正确设置此部分。但是,当我关闭共享数据库时,应用程序停止工作,而不是运行Mongo。

我不确定下一步该做什么,我是否必须在mongo中重写我的代码或mongo mapper解决所有问题?如果我改变,我会丢失数据,如果是,我该如何复制?

你们有没有人能指点我一些资源或帮助我?非常感谢!!

1 个答案:

答案 0 :(得分:4)

MongoDB不是SQL数据库的替代品。您需要调整几件事情:

  • 模型代码将更新为使用MongoDB。我建议使用ODM的Mongoid,因为它可以简化你的学习路径。 Mongoid实现了Active Record。

  • 需要将保存在SQL数据库中的当前数据迁移到MongoDB模式 - 这不是自动的。 MongoDB不像您在SQL世界中习惯那样支持迁移。您需要为此编写自己的脚本。

我建议您使用您选择的MongoDB ODM(MongoMapper或Mongoid)从头开始编写一个简单的应用程序,以便在尝试进行迁移之前熟悉MongoDB的基础。