将Django项目从MySQL迁移到PostgreSQL的最简单方法

The easiest way to migrate a Django project from MySQL to PostgreSQL

我想将我的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数据库中的序列。


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


如果您的数据集很大并且您需要进行任何转换,您可以使用开源解决方案,如talend studio和pentaho的水壶项目来创建地图,它将负责其余的工作; 但这可能有点过分,除非你想要进行任何转换(或者你的数据集真的很大)。

EnterpriseDB(postgresql背后的公司)提供了一个数据迁移工作室产品,如果您想自己完成,可以与指南一起提供。

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