我试图使用makemigrations命令在现有的应用程序中创建迁移,但它输出“未检测到更改”。
通常我使用startapp命令创建新的应用程序,但在创建这个应用程序时没有使用它。
调试后,我发现它没有创建迁移,因为迁移包/文件夹从应用程序中丢失。
如果文件夹不存在或者我遗漏了什么,如果它创建文件夹会更好吗?
我试图使用makemigrations命令在现有的应用程序中创建迁移,但它输出“未检测到更改”。
通常我使用startapp命令创建新的应用程序,但在创建这个应用程序时没有使用它。
调试后,我发现它没有创建迁移,因为迁移包/文件夹从应用程序中丢失。
如果文件夹不存在或者我遗漏了什么,如果它创建文件夹会更好吗?
当前回答
好吧,我相信你还没有设置模型,那么它现在迁移了什么?
所以解决方案是设置所有变量和设置Charfield, Textfield.......然后迁移它们,就会成功。
其他回答
另一个可能的原因是,如果您在另一个文件中定义了一些模型(而不是在包中),并且没有在其他任何地方引用它。
对我来说,简单地从.graph_model import *添加到admin.py(其中graph_model.py是新文件)就可以解决这个问题。
我的问题(以及解决方案)与上面描述的不同。
我没有使用models.py文件,而是创建了一个models目录,并在那里创建了my_model.py文件,我把我的模型放在那里。Django找不到我的模型,所以它写道没有迁移可以应用。
我的解决方案是:在my_app/models/__init__.py文件中,我添加了这一行: 导入MyModel
另一种可能是您压缩了一些迁移并应用了结果迁移,但忘记从其中删除replace属性。
在我的情况下,我忘记插入类参数
错误的:
class AccountInformation():
正确的
class AccountInformation(models.Model):
更新:在尝试之前,应该确保migrations文件夹中存在__init__.py文件:
./manage.py makemigrations <myapp1> <myapp2>…< myappN >
有时。/manage.py makemigrations优于。/manage.py makemigrations <myapp>,因为它可以处理应用程序之间的某些冲突。
这些情况都是悄无声息地发生的,需要几个小时的咒骂才能理解可怕的“检测到没有变化”消息的真正含义。
因此,使用下面的命令是一个更好的选择:
./manage.py makemigrations <myapp1> <myapp2>…< myappN >