【发布时间】:2015-06-27 20:39:32
【问题描述】:
根据the Django docs,如果我想为应用创建初始迁移,我应该这样做:
$ python manage.py makemigrations my_app
但是,如果我在我的项目中这样做,我会得到:
在应用“my_app”中未检测到更改
即使 my_app 还没有迁移 - my_app/migrations/ 文件夹只有一个 __init__.py 文件。
我的模型中没有managed = False。有问题的模型类甚至没有定义 Meta 类。还有什么可以阻止 Django 检测模型更改?
Django 如何检测是否/何时发生变化?
更新:
我应该补充一点,当我使用 South 迁移时,这个特定应用程序的迁移工作得很好。只有在升级到 Django 1.7 和内置迁移之后,它才能再确定该特定应用程序是否/何时发生模型更改(其他应用程序的迁移工作正常)。
【问题讨论】:
-
您的模型定义正确吗?即,它们是否继承自
models.Model? -
是的,它们继承自
models.Model。当我使用 South 而不是 Django 1.7 迁移时,这些模型的迁移工作正常。当我遇到上述问题时,我实际上正在升级到 Django 1.7。我按照“从南方升级”的说明进行操作,然后发现有一个应用缺少迁移。 -
尝试更改您的模型并运行
python manage.py makemigrations my_app以查看输出是什么(然后您可以撤消模型更改并删除迁移,而您的代码和数据库不受影响)。 -
@mcastle - 我试过了。就迁移而言,该应用程序中没有识别出其他更改。
-
@Filly - 我试过了。不幸的是,结果是一样的。现在,我刚刚手动创建了迁移。那会让我过去的。