很多新手遇到修改模型model后,或是删除了sql数据库表后运行
- python3 manage.py makemigrations
- python3 manage.py migrate
出现No migrations to apply,没有新生成数据表
在执行 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 就能成功的生成新数据表
此时一个一劳永逸的方式就是把数据库所有生成的表都删除,包括auth_user这类的表单,然后在运行migrate命令