将一个Django应用程序迁移到另一个应用程序的最佳方法是什么

时间:2012-02-10 10:56:11

标签: django django-models django-south

我正在开发一个Django项目,我必须使用South将一个应用程序迁移到另一个应用程序。我有旧的内部消息应用程序,我必须用另一个完全不同的替换。我想知道我是否可以通过orm,但旧的应用程序在INSTALLED_APPS中不再存在,所以没有意义。使用SQL过程是否可以这样做?我当时希望将应用程序数据库类型保持独立。

2 个答案:

答案 0 :(得分:2)

Django应用程序在数据库中被命名空间,因此您应该能够暂时安装这两个应用程序。我会把它分解为大约三次迁移:

  1. 用于添加新应用程序的模式迁移。如果其他应用程序需要与新应用程序具有外键关系,请添加它们并确保它们都可以为空。
  2. 用于在旧应用程序中遍历模型对象并在新应用程序中创建等效对象的数据迁移。
  3. 删除旧应用程序的模式迁移。

答案 1 :(得分:0)

  1. schemamigration:python manage.py schemamigration myapp(可以为空的外键)

  2. datamigration:Django自定义sql是我的朋友 - > https://docs.djangoproject.com/en/dev/topics/db/sql/ 已经使我的自定义数据迁移脚本保持项目数据库独立

  3. 使用2删除旧的应用程序架构。

  4. (可选)向后救援脚本