django 在models和数据库没有变动的情况下,产生migrations文件:Applying * 0008_alter_*.py

现象

在models和数据库完全一致的情况下,执行如下代码时,却产生了新的migrations文件。而且每执行一次均会产生新的文件。

python manage.py makemigrations

原因在于运行缓存__pycache__文件与migrations文件不匹配。

按以下步骤操作,就可以消除此现象。

1.删除工程相关app下的__pycache__。

楼主执行的比较彻底,所以删除了工程下全部的缓存文件,但应该只要删除目标相关文件夹下的缓存文件即可。

执行到此步骤后,可以尝试执行python manage.py makemigrations,观察有没有继续生成新文件,如果没有生成。则以下步骤均不必执行,问题已经解决。

如果依然出现,则再删除一遍刚生成的__pycache__。

2.删除相关app下的migrations文件夹。

此操作要慎重,尤其是如果各app间有互相引用关系时,删migrations文件可能会导致,引用app找不到依赖文件而报错。

如果出现这种情况,只能一直删下去了,把所有相关的migrations全部删除。

3.重新在app中生成migrations文件。

python manage.py makemigrations  appname
python manage.py migrate  --fake #一定要加--fake

至此问题即可得到解决。

注意

如果以上三步之后问题依然存在,则只能全工程删除__pycache__和migrations文件夹,然后重复执行上述三步,问题一定可以解决的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值