Django 解决新建表删除后无法重新创建等问题
起因
同步表的过程中,我手动将数据库中的一个表删除了,此时再去执行命令,发现不能再数据库中新建表了
修改了表结构以后执行python3manage.pymigrate报错:
Nochangesdetected
所以进数据库把对应的表删除了,想着重新生成这张表.
删除表以后执行:
python3manage.pymakemigrations
python3manage.pymigrate
还是不能生成表,提示:Nochangesdetected
处理过程
一、首先删除了app对应目录下的数据库对应的文件和缓存文件:
$rm-rfmigrations/__pycache__/
一般可以从本地删除
重新执行:
··· $python3manage.pymakemigrations Nochangesdetected /code/django/blogproject~/code/django/blogproject/code/django/blogprojectpython3manage.pymakemigrationscomments Migrationsfor‘comments': comments/migrations/0001_initial.py -CreatemodelComment /code/django/blogproject~/code/django/blogproject/code/django/blogprojectpython3manage.pymigrate Operationstoperform: Applyallmigrations:admin,auth,blog,comments,contenttypes,sessions,users Runningmigrations: Nomigrationstoapply. ···
二、删除app下面目录migrations下面除了init.py其他的所有文件
三、最后,删除migrations中关于你的app的同步数据数据库记录
deletefromdjango_migrationswhereapp=‘yourappname';
重新执行生成数据库命令:
$python3manage.pymakemigrationscomments Nochangesdetectedinapp'comments' $~/code/django/blogproject$python3manage.pymigratecomments Operationstoperform: Applyallmigrations:comments Runningmigrations: Applyingcomments.0001_initial...OK
数据表顺利生成.
结论
在执行
python3manage.pymakemigrations
python3manage.pymigrate
操作的时候,不仅会创建0001_initial.py对应的模型脚本,还会创建一个数据库记录创建的模型.如果想重新生成数据库,需要三个地方都做删除.
以上这篇Django解决新建表删除后无法重新创建等问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。