正如标题所说,我似乎无法让迁移正常工作。
这个应用程序最初是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
中更改了任何模型,它仍然显示未迁移,这与预期不谋而合。
但是如果我运行python manage.py makemigrations myapp
,我会得到:
No changes detected in app 'myapp'
我运行命令的内容或方式似乎并不重要,它永远不会检测到应用程序是否发生了更改,也不会向应用程序添加任何迁移文件。
有没有办法强迫一个应用程序迁移,本质上是说“这是我的工作基础”或其他什么?还是我错过了什么?
我的数据库是PostgreSQL数据库,如果有帮助的话。
发布于 2014-07-24 17:07:38
好吧,看起来我遗漏了一个明显的步骤,但发布这篇文章是为了防止其他人也这样做。
当升级到1.7时,我的模型变成了非托管(managed = False
) --我以前用它们作为True
,但它似乎被恢复了。
删除这一行(默认为True),然后运行makemigrations
立即生成一个迁移模块,现在它可以工作了。makemigrations
不能在非托管表上工作(这在事后是显而易见的)
发布于 2015-10-12 21:19:30
这是一个愚蠢的错误,但是在model类的字段声明行的末尾加上一个额外的逗号,会使这一行没有任何效果。
在复制粘贴def时会发生这种情况。迁移本身被定义为一个数组。
尽管这可能会对某些人有所帮助:-)
发布于 2017-05-18 04:43:51
也许我来得太晚了,但你有没有尝试在你的应用程序中包含一个包含__init__.py
文件的migrations
文件夹?
https://stackoverflow.com/questions/24912173
复制相似问题