Django 1.7-没有检测到变化

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (55)

正如标题所说,我似乎无法让工作。

这个应用程序最初的版本是1.6,所以我知道迁移一开始不会出现,而且实际上如果我运行python manage.py migrate我得到:

Operations to perform:
  Synchronize unmigrated apps: myapp
  Apply all migrations: admin, contenttypes, auth, sessions
Synchronizing apps without migrations:
  Creating tables...
  Installing custom SQL...
  Installing indexes...
Running migrations:
  No migrations to apply.

如果我在myapp,它仍然表示未迁移,正如预期的那样。

但如果我runpython manage.py makemigrations myapp我得到:

No changes detected in app 'myapp'

我运行命令的方式和方式似乎都不重要,它从来没有检测到应用程序有变化,也没有向应用程序添加任何迁移文件。

有没有办法强迫一个应用程序迁移,并从本质上说“这是我的工作基地”或其他什么?还是我遗漏了什么?

我的数据库是PostgreSQL数据库,如果这有帮助的话。

提问于
用户回答回答于

好的,看来我错过了一个明显的步骤,但张贴这个,以防其他人也这样做。

当升级到1.7时,我的模型变得无法管理(managed = False)-我把它们当作True但似乎已经恢复了。

删除该行(默认为True),然后运行makemigrations立即制作了一个迁移模块,现在它开始工作了。makemigrations不适用于非托管表(事后看来这是显而易见的)

用户回答回答于

如果正在从Django 1.6中创建的现有应用程序中进行更改,那么需要执行文档中列出的一个预步骤(正如我所发现的):

Python Manage.py生成你的_APP_标签

文档并没有说明您需要将app标签添加到命令中,因为它告诉要做的第一件事是python manage.py makemigrations会失败的。最初的迁移是在1.7版中创建应用程序时完成的,但是如果来自1.6版本,则不会执行。见“向应用程序添加迁移”在文档中获得更多细节。

扫码关注云+社区