Python3 Django2.0 migrate 不能创建表

在使用 Django2.0 做项目的时候,改了数据表一些字段,想删除后重新使用

python3 manage.py makemigrations 
python3 manage.py migrate 

生成新的数据表,结果就出现了以下问题:

一、migrate 没有新生成数据表

1、删除 app 目录下的数据库文件和缓存文件

rm -r migrations/ __pycache__/

2、执行 makemigrations 没有问题,但是执行 migrate 时,显示 No migrations to apply,没有新生成数据表。

3、在 django_migrations 这张表里面,记录这有关创建表的记录,删除对应的数据表在执行 migrate,数据表顺利生成。

在执行 python3 manage.py makemigrations 时,在 app migrations 目录下生成对应 SQL 语句的 000*_initial.py 数据文件。

在执行 python3 manage.py migrate 时,不仅会创建 000*_initial.py 对应的数据文件,还会将这条记录数添加到据库库中。如果想重新生成数据库,需要两个地方都做删除。

二、migrate 时报错


1、把 migrations 中数据文件删除

2、删除 django_migrations 表中数据

3、重新使用 makemigrations 和 migrate 发现报错

2、经过排查,数据库中没有把旧表删除,删除后重新执行 makemigrations 和 migrate 就能成功的生成新数据表

猜你喜欢

转载自blog.csdn.net/yilovexing/article/details/80219710