Django 1.7 - 创建初始迁移

时间:2015-04-20 22:19:21

标签: django django-migrations

根据the Django docs,如果我想为应用创建初始迁移,我应该这样做:

$ python manage.py makemigrations my_app

但是,如果我在项目中这样做,我会得到:

  

在app' my_app'

中未检测到任何更改

即使my_app还没有迁移 - my_app / migrations /文件夹只有__init__.py个文件。

我的模型中没有managed = False。有问题的模型类甚至没有定义Meta类。还有什么可以阻止Django检测模型变化?

Django如何检测是否/何时有变化?


更新
我应该补充一点,当我使用South迁移时,这个特定应用程序的迁移工作正常。只有在升级到Django 1.7和内置迁移之后,才能确定是否/何时对该特定应用进行模型更改(其他应用的迁移工作正常)。

2 个答案:

答案 0 :(得分:1)

有点晚了,但是在创建了一个全新的应用程序之后,我突然意识到我没有将新应用程序添加到INSTALLED_APPS中的settings.py

INSTALLED_APPS = (
    ...
    my_app,
    ...
)

执行该操作然后重新运行python manage.py makemigrations my_app会生成初始迁移。

答案 1 :(得分:0)

您可能希望寻找"迁移"您的virtualenv主目录或路径中的某个目录。

在尝试将应用程序从South迁移到Django 1.7迁移时,我跑了几次类似的问题。出于某种原因,Django无法找到正确的迁移文件夹,因此会创建迁移到不太可能的位置,例如<virtualenv>/bin/myapp/migrations dir(使用django-admin.py时)。所以每次我运行makemigrations Django会发现这个&#34;陈旧&#34;迁移,并显示No changes detected in app 'my_app'消息。

很抱歉,如果我对具体内容含糊不清,我会在下次遇到此问题时进行更新。