Django的Makemigrations和Migrate不断重复执行
Django的Makemigrations和Migrate不断重复执行
我的django应用程序似乎出现了一些问题。有两个模型,一个我进行了修改,另一个是新增的。自从这两个更改之后,我的makemigrations和migrate一直是相同的,但迁移编号在递增。
当我执行makemigrations时:
om的迁移:
0033_auto_20200122_0001.py:
- 在growerpurchaseorderitem上修改了delivery_date字段
accounts的迁移:
0105_auto_20200122_0001.py:
- 在pushtoken上修改了created字段
- 在pushtoken上修改了push_token字段
当我执行migrate时:
同步应用程序,无需进行迁移:
创建表...
执行延迟的SQL...
安装自定义SQL...
运行迁移:
渲染模型状态...完成
应用accounts.0105_auto_20200122_0001...成功
应用om.0033_auto_20200122_0001...成功
我尝试过模拟迁移来解决这个问题,但没有成功。这是一个问题,因为任何新的更改都无法注册到我的模型中。
编辑:
显示迁移:
对于我的om模型:
[X] 0030_auto_20200121_2339
[X] 0031_auto_20200121_2343
[X] 0032_auto_20200121_2348
[X] 0033_auto_20200122_0001
对于我的accounts模型:
[X] 0099_certpdf_expiration_date
[X] 0100_pushtoken
[X] 0101_auto_20200121_2145
[X] 0102_auto_20200121_2339
[X] 0103_auto_20200121_2343
[X] 0104_auto_20200121_2348
[X] 0105_auto_20200122_0001
问题:Django的makemigrations和migrate重复执行。
出现原因:由于某种原因,Django的makemigrations和migrate命令会重复执行,导致出现问题。
解决方法:删除migrations文件夹中最近自动生成的文件,然后重新执行命令。也可以直接编辑文件并运行命令。
具体操作如下:
1. 打开项目中的migrations文件夹。
2. 删除最近生成的文件。
3. 在终端或命令行中输入以下命令:
python manage.py makemigrations python manage.py migrate
这样就能够解决Django的makemigrations和migrate重复执行的问题了。
通过删除最近生成的文件并重新执行命令,可以解决Django的makemigrations和migrate重复执行的问题。
根据我的研究,这很可能是程序出错的地方:
Synchronizing apps without migrations:
尝试创建迁移,并且伪造第一个迁移:
python manage.py makemigrations <app_name> python manage.py migrate --fake-initial
这些命令将跳过已经创建表的任何迁移。
附注:如果你不知道什么是伪造迁移,请查看解释。