有没有人这样做?这是一个简单的过程吗?我们正在考虑切换事务,因为最近mysql似乎正在“退出”。如何轻松将Django应用程序从mySQL转换为PostgreSQL?
回答
我刚刚使用这个工具来迁移一个内部的应用程序,它的工作非常好。 https://github.com/maxlapshin/mysql2postgres
我还没有做过。 我首先关注这个migration guide, there is a MySql section这应该照顾所有的数据。然后django只需在设置中将mysql切换到postgre。我认为这应该没问题。
我发现了另一个关于stackoverflow的问题,它应该有助于将mysql转换为postgre here。
您可以使用Django序列化程序将数据从MySQL格式输出到JSON,然后返回到Postgres。有互联网上一些好的artices有关:
蟒蛇manage.py dump.data >> data.json
在postrgesql创建数据库和用户
- 在django设置中将您刚创建的数据库设置为默认数据库中的postrgesql,或者使用param --datab ase = your_postrgesql_database下一步
运行syncdb以创建表。
蟒执行syncdb [--database = your_postrgesql_database] --noinput
没有数据创建转储,丢弃所有表和负载突降。或截断所有表(表django_content_type whith数据可能不等于您的旧数据 - 这是很多错误的方式)。在这一步,我们需要postgresql-db中的空表。
当你在空表PostgreSQL的分贝只是加载数据:
蟒蛇manage.py loaddata data.json
而且很有趣!
我写了复制一个数据库到另一个Django的管理命令: https://gist.github.com/mturilin/1ed9763ab4aa98516a7d
您需要在设置中添加数据库和使用这个命令:
./manage.py copy_db from_database to_database app1 app2 app3 --delete --ignore-errors
什么酷的这个命令它递归复制依赖对象。例如,如果模型有两个外键和两个多对多关系,它将首先复制其他对象以确保您不会收到外键违例错误。
Django的
首先备份您的JSON灯具老Mysql数据库的数据转换MySQL数据库Postgres数据库:
$ python manage.py dumpdata contenttypes --indent=4 --natural-foreign > contenttype.json
$ python manage.py dumpdata --exclude contenttypes --indent=4 --natural-foreign > everything_else.json
然后你settings.DATABASES切换到Postgres的设置。
PostgreSQL中创建表:
$ python manage.py migrate
现在删除所有被自动迁移作出(Django的CONTENTTYPES,用户组等)内容:
$ python manage.py sqlflush | ./manage.py dbshell
,现在你可以放心地进口一切,并保持你的PK是一样的!
$ python manage.py loaddata contenttype.json
$ python manage.py loaddata everything_else.json
测试和Django == 1.8
- 1. 轻松地将NSComboBox转换为NSTextField
- 2. 如何将Cookies集合转换为通用列表?轻松
- 3. 如何将Heroku应用程序从MySql切换到PostgreSql
- 4. 如何将一个整数转换为两个并轻松地转换转换?
- 5. 您可以轻松将WPF应用程序转换为WPF XBAP应用程序吗?
- 6. 轻松地将Android库切换到应用程序(&返回)
- 7. 将Django应用程序转换为DRF应用程序
- 8. 如何轻松地将PEAR依赖与应用程序打包?
- 9. 如何轻松将vkeys ALT组合转换为文本?
- 10. 如何轻松将我的LinearLayouts转换为RelativeLayouts
- 11. 如何轻松将java8映射转换为并发映射?
- 12. 如何将基本的HTML主题轻松转换为角?
- 13. 如何轻松将Evernote笔记本转换为Wordpress类别
- 14. 如何轻松将我的POJO转换为JSON数据?
- 15. 如何轻松将旧代码转换为WCF?
- 16. 如何轻松将BufferedReader转换为字符串?
- 17. 如何轻松地将QString转换为点(x,y,z)?
- 18. 如何轻松将秒转换为MDX中的时间戳(HH:MM:SS)
- 19. 如何轻松将numpy.ndarray转换为numpy.array列表?
- 20. 如何将django web应用程序转换为桌面应用程序
- 21. 将特定行从Postgresql转换为mysql
- 22. 现有的WPF应用程序可以轻松转换为MonoDroid吗?
- 23. 如何将Django应用程序转换为RoR?
- 24. 如何将rails 4应用程序的数据库从sqlite3转换为postgresql?
- 25. 轻松访问Rails应用程序?
- 26. 轻松修补OS X应用程序
- 27. 如何将iPhone应用程序转换为iPad应用程序
- 28. 如何将Phonegap应用程序转换为iphone应用程序?
- 29. 如何将AngularJS应用程序转换为android应用程序
- 30. 如何将j2me应用程序转换为android应用程序?
1)MySQL的支持事务处理(InnoDB的)2)是什么让你觉得MySQL是 “crapping出” 了吗? – 2011-02-11 01:13:15
因为现在我们刚刚开始听到这些错误的声音:OperationalError:(1205,'Lock超时超时;尝试重新启动事务')另外,在Django中使用South有时会在没有真正事务的情况下受到伤害。 – 2011-02-11 14:43:28
MySQL不支持模式事务 - 这可能会导致大量令人头痛的迁移 – yarbelk 2013-02-18 05:20:27