Django 数据库迁移应该了解的操作

python manage.py makemigrations

这个命令是创建数据库迁移脚本,针对已经app已经修改的model生成迁移脚本


python manage.py migrate

这个命令是数据库执行迁移脚本同步到数据库,这个命令谨慎操作。

如果想要精确到某个迁移文件(0004_xxx.py):

python manage.py migrate app_name 004

如果想看迁移文件的执行状态,可以用showmigrations命令查看:

$ python manage.py showmigrations

显示django已知的migrations和状态。

错误
数据库的命令稍有不慎可能就会掉坑。特别是migrate命令,由于django的数据库中包含了migrations的记录,如果migrations文件丢失,很可能造成migrate失败。所以有必要将migrations文件加入版本控制,保证开发时的migrations记录和文件相匹配。
如果migrate出现了失败,很可能是因为migration文件包含的变更信息由于当前数据库的约束无法完完成。这时就应该去数据中找到这些记录或键的位置,删掉重做即可。一般这些数据存在的表为:外键约束对应的表、auth_permission、django_content_type和django_migrations.

标签: DJANGO

发表评论:

登陆