Django重建app表

有时候一些操作失误,导致app的Migrations出现错误,重新建表是最快的解决方式。
我项目里的review出现了问题,我们看看现在的情况:

shell# python manage.py showmigrations
......
review
 [X] 0001_initial
 [X] 0001_auto_20190801_1457
 [X] 0003_auto_20190809_1241
 [X] 0004_auto_20190809_1243
 [] 0005_auto_20190809_1641
 [] 0006_auto_20190809_1700
 [] 0007_auto_20191119_0900
......

错误就是从上面0005_auto_20190809_1641那个地方开始的,于是我决定删表重建。

1.首先,移除Migrations的提交记录,

shell# python manage.py migrate --fake review zero
shell# python manage.py showmigrations
......
review
 [] 0001_initial
 [] 0001_auto_20190801_1457
 [] 0003_auto_20190809_1241
 [] 0004_auto_20190809_1243
 [] 0005_auto_20190809_1641
 [] 0006_auto_20190809_1700
 [] 0007_auto_20191119_0900
......

可以看到,已经全部去掉了,然后删除review/migrations目录下的所有文件。

2.然后,删除表,重建app的表即可。

mysql shell> drop table review;
shell# python manage.py makemigrations review
shell# python manage.py sqlmigrate review 0001
shell# python manage.py migrate review

如果不想删除表,那么上面的步骤2改成以下操作即可:

python manage.py makemigrations review 
python manage.py migrate --fake-initial review

除非标明,否则皆为<IT民工の在日生活 - 神户印象>原创之作,转载必须以明文链接标明出处。
本文链接:https://www.lifeinjp.net/share/441

发表评论