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
分类:
Django中ORM知识点
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix