django的migrate --fake-initial

1、单纯的migrate会有如下操作:
(1)对比django_migrations表的记录,找出没有包含的migration文件,执行migration文件应用到数据库,并在django_migrations表添加记录
(2)如果有新增或者删除表,会去生成或调整django_content_type表记录,这个主要是将表和app绑定对应关系
(3)如果有新增或者删除表,会去生成或调整auth_permission表记录,这个主要是将表对应的增删改查权限添加到django框架中,可在admin页面进行配置用户对应权限

2、migrate --fake会有如下操作:
(1)对比django_migrations表的记录,找出没有包含的migration文件,不会去真正执行migration文件应用到数据库,只会在django_migrations表添加记录

3、migrate --fake-initial(--fake-initial可以认为是--fake和单纯的migrate的结合):
(1)当对比django_migrations表的记录发现没有未执行的migration文件时,相比--fake,它还会去检查并生成对应的django_content_type表、auth_permission表的记录
(2)而当发现还有未执行的migration文件时,如果操作是是建表或者加字段,它会跳过执行修改表结构的语句。如果是其他操作,和单纯的migrate一样,会真正执行修改表结构的语句。
(3)可参考官网说明:https://docs.djangoproject.com/en/4.0/topics/migrations/

原文链接:https://blog.csdn.net/qq_30966497/article/details/122863406

posted @ 2022-04-10 14:02  10132714  阅读(394)  评论(0编辑  收藏  举报