2011-12-05 83 views
4

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

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

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

+0

我删除了我的答案。下次我会读两遍这个问题。祝你好运! – danihp

回答

3

有几个转换器吧,比如这一个在Ruby中:https://github.com/maxlapshin/mysql2postgres

+0

谢谢,必须尝试这一个。我已经听说过它,但我不知道它也可以生成数据库转储。 –

+0

我发现python重写的那个Ruby脚本对我来说效果更好:http://stackoverflow.com/questions/8895374/changing-django-database-backend-from-mysql-to-postgresql/8929667#8929667 – Anentropic

0

如果数据集很大,你需要做任何改造就可以使用开源的解决方案,如talend studiopentaho到反应釜项目创建一个地图,它会照顾其余的;但除非你想进行任何转换(或者你的数据集真的非常大),否则这可能是过度杀伤力。

EnterpriseDB(Postgresql后面的公司)提供了一个data migration studio产品,如果你想自己做,可以使用guide

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

+0

我有一些与Talend Studio和Pentaho的经验,我绝不会建议将它们用于此目的。 KIS - 针对特定操作使用小型,简单而高效的工具。用锤子钉耳环不是个好主意...... – boldnik

相关问题