Django中makemigrations和migrate

一、django迁移命令的大致解析

1、python manage.py makemigrations命令的功能

对于首次执行这个命令时,会在原有的migrations目录下生成0001_inital.py文件;

当有了0001_inital.py文件,再执行该命令生成的迁移文件是:000x_模型类_字段.py。

在执行该命令时具体有哪些操作

1.1、将模型类的操作写到迁移文件中,是以orm的命令格式。

1.2、此时只是将模型类转换成orm的迁移命令,写到迁移文件中。没有去操作django_migrations表,也没有去执行迁移命令在物理数据库中创建表等操作。

2、python manage.py migrate命令的功能

2.1、在执行该命令后,会对比迁移文件名和django_migrations表中的记录。

  如果该迁移文件在记录中已经存在了,就不会去执行该迁移文件,也就不会去操作物理数据库了。如果该迁移文件在表中没有记录,就会去执行迁移文件,去操作物理数据库,该建表就建表,修改字段就修改字段等等。还会将该迁移文件,记录到django_migrations表中,表明该迁移文件已经执行过了。

3、扩展

其实在执行python manage.py migrate时,还会操作:django_content_type和auth_permission两张表。

django_content_type:记录的是表和应用的关系,就是某个应用下有几个模型类。

auth_permission: 说是记录权限。

 

转载自:https://blog.csdn.net/weixin_46371752/article/details/127553559

 

posted on 2023-03-19 20:31  一先生94  阅读(174)  评论(0编辑  收藏  举报

导航