Django migrate --fake 与 --fake-initial

Django的migrate 系列命令必须要结合数据库来理解。

migrate命令执行时Django会做4件事:

1,迁移判定,将你的项目中所有未迁移的变动文件进行迁移(django会去查询django_migrations表判断你是否有新的迁移变动)

Django migrate --fake 与 --fake-initial

Django migrate --fake 与 --fake-initial

在完成接下来的迁移后,便会在该表中生成一条迁移记录。

2,迁移映射关系   django_contenttype表新增映射关系(app与模型关系)

Django migrate --fake 与 --fake-initial

3,迁移权限 auth_permission表新增权限

Django migrate --fake 与 --fake-initial

4 ,执行迁移,生成数据表,或变动

migrate --fake 只执行第一步,并生成迁移记录。

migrate --fake-initial 执行前三步,不实际变动数据库

migrate 全部依次执行所有步骤。