我应该对我的所有应用程序运行 Django“makemigrations”吗?

Ray*_*Ray 1 django django-models

我刚刚将我的项目升级到 Django 1.8.4。我以前从未在这个项目中使用过迁移。我发现我必须对我的四个应用程序显式运行“makemigrations”命令,因为它们包含 auth_user 表的外键。我是否需要对其他六个应用程序运行 makemigrations 命令?我问的原因是因为文件说,

如果您的应用程序已经有模型和数据库表,并且还没有迁移(例如,您针对以前的 Django 版本创建它),则需要将其转换为使用迁移”

但是,当我对我的“家庭”应用程序运行命令时,我收到了这条消息:

No changes detected in app 'home'
Run Code Online (Sandbox Code Playgroud)

将项目转换为 Django 1.8 时,是否应该对所有应用程序运行 makemigrations 命令,然后在实际数据库表已存在的情况下运行“migrate --fake-initial”?

谢谢。

rar*_*iru 6

更新:确保migrations文件夹包含__init__.py.


确实,有很多次,我不得不删除并重新创建我的开发数据库。

在此过程中,我遇到了同样的问题,尤其是在升级到Django 1.8.* / 1.9.*.

在我的脚本中,删除迁移文件夹的内容后,我makemigrations在所有应用程序中运行分别地 同时

./manage.py makemigrations <myapp1> <myapp2> ... <myappN>

在此之前,我备份了所有数据:

./manage.py dumpdata --exclude auth.permission --exclude contenttypes --exclude admin.LogEntry --indent 2 > db.json
Run Code Online (Sandbox Code Playgroud)