Django创建数据库失败,最终解决大法--重置migration
Django使用models.py创建数据库的时候,有时会出现无法刷新最新代码,在已修改过的地方一直报错的问题,这可能是migration缓存文件导致的,需要重置一下migration我们在models.py中执行的创建数据库及表的命令都会以.py的形式记录在migration文件夹中。
·
解决思路:
问题:
Django使用models.py创建数据库的时候,有时会出现无法刷新最新代码,在已修改过的地方一直报错的问题,这可能是migration缓存文件导致的,需要重置一下migration
前提:
我们在models.py中执行的创建数据库及表的命令都会以.py的形式记录在migration文件夹中

解决:
1、查看migration记录文件
python3 manage.py showmigrations

2、重置APP
python3 manage.py migrate --fake explore zero
注意:fake前面的符号是两个 - ;app01 是自己要修改的APP名字


3、校验重置是否正确
-
执行
python3 manage.py showmigrations,检查migration记录文件 -
如果只有要重置的APP前面 [x] 变成了 [ ] 则成功;如果其他APP前面的 [x] 也变成了 [ ] ,则需要再次执行重置已改变APP的命令
例如:想要修改app01,但是重置APP后app02前面 [x] 也变成了 [ ] ,则执行 python3 manage.py migrate --fake app02 zero

4、删除migration记录文件
手动删除migrations文件夹下除了__init__.py的所有.py文件,也包括pycache文件夹
5、注册APP
为重置APP生成 0001_initial.py的migrations记录文件
python3 manage.py makemigrations
6、再次执行生成数据库命令
python3 manage.py makemigrations
python3 manage.py migrate

查看数据库

Tips:
执行命令时报错:表已存在
django.db.utils.OperationalError:(1050, "Table 'table_name' already exists")

命令后加入 --fake-initial 即可
python3 manage.py migrate --fake-initial
---THE END ---
更多内容请关注同名微信公众号
更多推荐




所有评论(0)