Django 1.8:删除迁移文件夹后未检测到迁移

Posted

技术标签:

【中文标题】Django 1.8:删除迁移文件夹后未检测到迁移【英文标题】:Django 1.8: Migrations not detected after deleting migrations folder 【发布时间】:2015-09-13 02:30:22 【问题描述】:

我不小心删除了迁移文件夹,现在 python manage.py makemigrations 没有检测到我的模型中的更改。我该怎么办?

shubham@shubham-PC:~/Documents/try/ecommerce$ python manage.py makemigrations
No changes detected

仓库是here

【问题讨论】:

【参考方案1】:

试试python manage.py makemigrations app_name

编辑: Django 允许您在项目中拥有无需迁移的应用程序。这是通过migrations 文件夹检测到的。如果应用程序没有它,则在使用python manage.py makemigrations 命令时它不会创建迁移,尽管您在INSTALLED_APPS 中有它。要强制应用程序使用迁移,您需要指定应用程序的名称。顺便说一句,这对于您使用新版本 Django 创建的应用程序来说不是必需的,因为它们是使用 migrations 文件夹创建的。仅当您删除迁移文件夹(如您所做的那样)或使用使用旧版本 Django 创建的应用程序时才需要这样做。

【讨论】:

成功了!你知道为什么 python manage.py makemigrations 没有检测到变化吗? 我已经编辑了答案,因为解释太长,无法放入评论中;)。 太棒了!解释一切! 解释得很好。谢谢先生。 谢谢你,成功了。但出于某种原因,我认为即使是较新的版本也有这个问题。我有 3.1.5 版,我遇到了类似的问题。如果我删除迁移文件夹中的所有文件(但不删除文件夹本身),则会发生同样的问题。

以上是关于Django 1.8:删除迁移文件夹后未检测到迁移的主要内容,如果未能解决你的问题,请参考以下文章

Django - 迁移后未创建表

无法将 Django 从 1.7 迁移到 1.8

Django 1.8:删除/重命名数据迁移中的模型字段

如何在 django (1.8) 迁移中删除索引 varchar_pattern_ops?

升级到 1.8 后进行迁移时出现 DjangoUnicodeDecodeError

在 django 1.8 中将数据从原始用户模型迁移到自定义用户模型