时间:2021-05-22
起因
修改了表结构以后执行python3 manage.py migrate 报错:
django.db.utils.OperationalError: (1091, "Can't DROP 'email'; check that column/key exists")所以进数据库把对应的表删除了,想着重新生成这张表.
删除表以后执行:
python3 manage.py makemigrationspython3 manage.py migrate还是不能生成表,提示:No changes detected
处理过程
首先删除了app对应目录下的数据库对应的文件和缓存文件:
$ rm -rf migrations/ __pycache__/重新执行:
$ python3 manage.py makemigrationsNo changes detected$~/code/django/blogproject$ python3 manage.py makemigrations commentsMigrations for 'comments': comments/migrations/0001_initial.py - Create model Comment$~/code/django/blogproject$ python3 manage.py migrateOperations to perform: Apply all migrations: admin, auth, blog, comments, contenttypes, sessions, usersRunning migrations: No migrations to apply.进入数据库发现仍然没有生成表.
然后发现有一张django_migrations表,里面记录这有关创建表的记录,删除对应的数据表:
delete from django_migrations where app='yourappname';重新执行生成数据库命令:
$ python3 manage.py makemigrations commentsNo changes detected in app 'comments'$~/code/django/blogproject$ python3 manage.py migrate commentsOperations to perform: Apply all migrations: commentsRunning migrations: Applying comments.0001_initial... OK数据表顺利生成.
结论
在执行
python3 manage.py makemigrations python3 manage.py migrate操作的时候,不仅会创建0001_initial.py对应的模型脚本,还会创建一个数据库记录创建的模型.如果想重新生成数据库,需要两个地方都做删除.
以上这篇解决Django migrate No changes detected 不能创建表的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
有时候运行Django的migrate命令不能创建INSTALLED_APPS中的app中的models.py的数据库表,这时可以先运行:pythonmanag
今天有碰到这种情况,数据库中有张表没办法通过migration来更改,migrate时报django.db.utils.OperationalError:(10
很多小伙伴在学习Django的时候,总是搞不定版本的问题,下面来一起看一张表,轻松解决Python版本和Django版本的兼容问题。Django和Python兼
问题描述:在django中创建了一个app,而且在app中自定义创建了几个数据表,在同步的时候系统自带的表可以成功,但是models中的没有生效,而且进入对应a
Django根据已有数据库表反向生成models类一.创建一个Django项目django-adminstartproject‘xxxx‘二、修改setting