如何将Rails应用程序从使用MongoDB迁移到PostgreSQL?

时间:2012-08-28 04:07:40

标签: ruby-on-rails postgresql mongoid

我有一个现有的Rails应用程序,我已经进行了大约100个小时的开发。我想把它推到Heroku,但我错误地将mongoDB用于我的所有开发工作。现在我没有架构或任何类型的东西,我正在尝试推出Heroku并使用PostgreSQL。有没有办法可以删除Mongoid并使用Postgres?我尝试过使用DataMapper,但这似乎弊大于利。

2 个答案:

答案 0 :(得分:1)

使用postgresql的json数据类型,将mongo集合转换为表,每个表应该是id和doc(json),然后它很容易从一个移动到另一个。

答案 1 :(得分:0)

迁移是容易还是困难取决于大量的事情,包括您必须容纳多少不同版本的数据结构。一般来说,如果你分阶段解决这个问题,你会发现它容易得多:

  1. 确保所有Mongo数据在结构上与您的RDBMS模型一致,并且数据结构版本都是相同的。

  2. 移动您的数据。预计会发现问题,您将不得不回到第1步。

  3. 您可以预期的主要问题是数据验证问题,因为您正在从结构较差的数据平台转向更结构化的数据平台。

    根据您对MapReduce所做的工作,您可能也会在那里工作。