【问题标题】:The easiest way to migrate a Django project from MySQL to PostgreSQL将 Django 项目从 MySQL 迁移到 PostgreSQL 的最简单方法
【发布时间】:2012-01-13 04:11:58
【问题描述】:

我想将我的 Django 项目的数据库从 MySQL 转换为 PostgreSQL。不幸的是,我不能只使用 Django 的“dumpdata”和“loaddata”管理命令,因为我的数据库表太大了。我已经阅读了文章http://www.ofbrooklyn.com/2010/07/18/migrating-django-mysql-postgresql-easy-way/,但似乎要在实践中使用此方法,我仍然需要将其转换为管理命令之类的东西,该命令在复制模型实例和重置序列时迭代可用模型。此外,它似乎也不是很快,因为它会在每个模型实例上发出 save()。

有没有更好的迁移方式?实际上,我更喜欢做“mysqldump”,以某种方式将转储从 MySQL 转换为 PostgreSQL 格式,然后将其加载到 PostgreSQL。您会推荐什么软件来执行这种转储转换并正确地将 MySQL 数据类型转换为 PostgreSQL 数据类型,例如 tinyint(1) 到 boolean?

编辑感谢大家的帮助。我使用https://github.com/maxlapshin/mysql2postgres 实用程序成功迁移了我的数据库。但是,在导入转储后,我仍然必须自己重置生成的 PostgreSQL 数据库中的序列。

【问题讨论】:

  • 我已经删除了我的答案。下次我将阅读两次问题。祝您迁移顺利!

标签: mysql django postgresql migration


【解决方案1】:

它有几个转换器,例如 Ruby 中的这个:https://github.com/maxlapshin/mysql2postgres

【讨论】:

  • 谢谢,一定要试试这个。我已经听说过它,但我不知道它也可以生成数据库转储。
  • 我发现该 Ruby 脚本的 python 重写对我来说效果更好:stackoverflow.com/questions/8895374/…
【解决方案2】:

如果您的数据集很大并且您需要进行任何转换,您可以使用开源解决方案,如talend studio 和来自pentaho 的kettle 项目来创建地图,剩下的工作将由它来处理;但这可能有点矫枉过正,除非您也想进行任何转换(或者您的数据集非常非常大)。

EnterpriseDB(postgresql 背后的公司)提供了一个 data migration studio 产品,如果你想自己做的话,还提供一个 guide

py-mysql2pgsql python 包是另一种选择。

【讨论】:

  • 我有一些使用 Talend Studio 和 Pentaho 的经验,我绝不会建议将它们用于此目的。 KIS - 使用小型、简单但高效的工具进行特定操作。用锤子钉耳环可不是个好主意……
猜你喜欢
  • 2011-02-10
  • 2015-02-21
  • 2011-03-29
  • 1970-01-01
  • 2011-03-03
  • 2011-05-09
  • 2018-02-05
  • 2011-07-17
  • 2011-06-06
相关资源
最近更新 更多