从MySQL数据库上的Rails迁移数据到Postgres SQL以便在Heroku上使用

7
我有一个使用MySQL本地开发的RAILS 3.x应用程序,其中包含需要迁移的数据。现在我想部署到Heroku上,Heroku使用Postgresql并且需要转移数据。
问题在于处理具有NULL数据的列,导入过程不喜欢这种情况。
我尝试了许多不同的策略,例如:
  1. yaml_db gem - 完全无法导入
  2. rails-backup-migrate gem - 不喜欢编码的NULL元素;
  3. taps - 导入失败,没有详细信息
是否有人尝试过其他策略、gems或方法?我应该重新开始使用Postgresl本地DB吗?
提前感谢您的帮助! grant

对于这个问题我不是很熟悉,是否有一种方法可以在推送到Heroku之前先使用本地的SQLite作为中介? - ZMorek
是的 - 我已经运行了迁移以创建表格,并且这些数据已从另一个遗留系统填充。但为了确保,我会重新检查一下。 - Grant Sayer
是的 - 尝试了 Heroku db:push,它会缓慢地运行,然后失败,没有太多帮助。 - Grant Sayer
Heroku实际上支持(我是指提供支持)taps。它们写了这个功能。可能有一种方法可以获取更多的调试信息,他们可以帮助你解决问题。我们之前已经通过taps成功进行了类似的迁移。 - Tom Lianza
2个回答

2
Heroku建议您在本地开发中使用Postgres。生产环境和开发环境应尽可能相似,这可以防止由于环境之间的微小差异而引入难以诊断的错误。每个Heroku上的应用程序都默认配备了一个PostgreSQL数据库作为SQL数据库。因此,您应该在本地开发数据库中也使用PostgreSQL。(http://devcenter.heroku.com/articles/rails3)快速搜索结果如下:http://wiki.postgresql.org/wiki/Converting_from_other_Databases_to_PostgreSQL#MySQL祝好运!

0

我也遇到了这个问题,发现了这篇非常好的博客文章

文章提到,你可以使用一个名为 Valkyrie 的 gem 来将数据从 MySQL 数据库迁移到 PostgreSQL 数据库。你只需要使用 gem install valkyrie 命令安装这个 gem,然后运行以下命令:

valkyrie mysql://datachomp@localhost/seppuku?password=QuickAndPainless postgres://datachomp@127.0.0.1/seppuku 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接