如何轻松地将Django应用程序从mySQL转换为PostgreSQL?

Rya*_*zel 12 mysql django postgresql

有没有人这样做过?这是一个简单的过程吗?我们正在考虑切换事务,因为mysql最近似乎在"走出去".

Mic*_*ter 16

使用Django将MySQL数据库转换为Postgres数据库

首先备份json fixtures中旧的Mysql数据库的数据:

$ python manage.py dumpdata contenttypes --indent=4 --natural-foreign > contenttype.json
$ python manage.py dumpdata --exclude contenttypes --indent=4 --natural-foreign > everything_else.json
Run Code Online (Sandbox Code Playgroud)

然后切换你的设置.DATABASES到postgres设置.

在Postgresql中创建表:

$ python manage.py migrate
Run Code Online (Sandbox Code Playgroud)

现在删除在迁移中自动生成的所有内容(django contenttypes,usergroups等):

$ python manage.py sqlflush | ./manage.py dbshell
Run Code Online (Sandbox Code Playgroud)

现在你可以安全地导入所有内容,并保持你的pk一样!

$ python manage.py loaddata contenttype.json
$ python manage.py loaddata everything_else.json
Run Code Online (Sandbox Code Playgroud)

用Django == 1.8测试

  • OMG,您保存了我的一天...我一直在尝试使用pdloader在周末将数据从MySQL迁移到PGSQL。该工具总是给我一个奇怪的错误,我什至不知道该如何开始调试...您的方法真是太棒了。非常感谢,您的回答应该是被接受的! (2认同)

Phi*_*ham 3

我刚刚使用这个工具来迁移内部应用程序,效果非常好。https://github.com/maxlapshin/mysql2postgres