我有一个最初为1.6版本创建的Django应用程序,我刚刚完成了上一版本的升级 . 所有模型都有 managed = False
,之前没有一个是南方管理的,现在我想开始使用1.7版本的Django迁移 .
这将是最好和无缝的方式吗?我担心只是在所有模型中更改 managed = True
并运行 manage.py makemigrations
会使迁移文件和数据库混乱 .
谢谢
EDIT
正如所建议的那样,我运行了manage.py makemigrations . 它创建了脚本 0001_initial
,其中包含一些模型定义,但不包含模型包中的所有对象 . 它创建了11个表,但我有19个表 . 所有型号都有 managed = True
,我没有任何数据库路由器 .
2 回答
我在现有项目上完成了从1.6到1.7的迁移 . 这是相当无痛的 .
我重命名了我的旧南迁移文件夹,让django 1.7迁移创建一个新的 . (即$ mv appname / migrations appname / migrations.south)这样可以更容易地以任何理由返回南方,并且不会在迁移文件夹中混乱 .
大多数取决于代码
项目根本没有迁移
该项目有南迁移:
您可以:
south_migrations
移动南迁要么
和
如果你选择
1
,你必须记住继续使用两个系统(南和django)进行迁移 . 仅当您想保持django <1.7兼容性时,这才有用您有一个可插拔的应用程序
这是最复杂的情况,因为你必须保持南方的兼容性,你必须管理不同版本的南方 . 这里如何:
在
south_migrations
移动南迁运行./manage.py makemigrations
防止南方加载错误的migratins将以下代码放入
migration.__init__.py