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

时间:2011-12-05 12:01:44

标签: mysql django postgresql migration

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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

EnterpriseDB(postgresql背后的公司)提供了一个data migration studio产品,如果您想自己这样做,可以使用guide

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