python manage.py migrate和 migrate –fake和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/

python manage.py migrate和 migrate --fake和migrate --fake-initial的区别

Original: https://blog.csdn.net/qq_30966497/article/details/122863406
Author: 孤独王者¥
Title: python manage.py migrate和 migrate –fake和migrate –fake-initial的区别

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/732907/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球