Django的Makemigrations和Migrate不断重复执行

19 浏览
0 Comments

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

0
0 Comments

问题: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重复执行的问题。

0
0 Comments

根据我的研究,这很可能是程序出错的地方:

Synchronizing apps without migrations:

尝试创建迁移,并且伪造第一个迁移:

python manage.py makemigrations <app_name>
python manage.py migrate --fake-initial

这些命令将跳过已经创建表的任何迁移。

附注:如果你不知道什么是伪造迁移,请查看解释

0