博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django orm 之makemigrations和migrate命令
阅读量:4701 次
发布时间:2019-06-09

本文共 1429 字,大约阅读时间需要 4 分钟。

makemigrations:将模型的更改生成迁移脚本文件。模型所在的app,必须放在settings.py中的INSTALLED_APPS列表中。这个命令有以下几个常用选项:

  1、app_label:后面可以跟一个或者多个app,那么就只会针对这几个app中模型的变化生成迁移脚本。如果没有任何的app_label,默认会检查INSTALLED_APPS中所有的app下的模型,针对每一个app中models的改变都生成相应的迁移脚本,注意生成的这些个迁移脚本文件都存放在各个app下的migrations下。

  2、--name:给这个迁移脚本指定一个名字,如果不指定名字,那么生成的脚本文件的名称将会不那么见名知意。

  3、--empty:生成一个空的迁移脚本。如果你想写自己的迁移脚本,可以使用这个命令来实现一个空的文件,然后自己再在文件中写迁移脚本。

 

migrate:将新生成的迁移脚本,映射到数据库中,创建新的表或者修改表的结构。执行python manage.py migrate命令会执行两个步骤:

  1、执行对应app(默认为INSTALLED_APPS下所有的app,当然也可以指定app名称)下的migrations文件夹下的迁移脚本文件并映射到数据表,除了第一个迁移脚本文件没有依赖,其余的迁移脚本文件都会依赖前一个,在执行迁移脚本文件的时候,django首先会检查'django_migrations'表中的记录,执行指定的迁移脚本(默认为最新的,可以指定app和迁移脚本文件版本名称),会依次执行它依赖的迁移脚本文件,直到这个依赖已经执行过了(会在'django_migrations'有记录)

  2、将已经执行的迁移脚本文件记录在django默认生成的'django_migrations'表中

app_label:将某个app下的迁移脚本映射到数据库中。如果没有指定,那么会将所有在INSTALLED_APPS中的app下的模型都映射到数据库中。

app_label migrationname:将某个app下指定名字的migration文件映射到数据库中。

执行migrate命令可能会报错,报错的主要原因是数据库的'django_migrations'表中的迁移版本与对应数据表中的数据表结构生成所需的迁移脚本相冲突。下面两个命令是解决报错的可用方法:

  1、--fake:可以将指定的迁移脚本名字添加到数据库中。但是并不会把迁移脚本转换为SQL语句,修改数据库中的表。使用与数据表结构所需迁移脚本比已执行的迁移脚本超前。

  2、--fake-initial:将第一次生成的迁移文件版本号记录在数据库中。但并不会真正的执行迁移脚本。使用于迁移脚本文件缺少并且很乱,可以把表的结构与models里的结构弄一致,删除所有迁移脚本,清空所有这个app相关的'django_migrations'数据。执行makmigrations,然后执行--fake-initial,继续正常的些其他表内容

showmigrations:查看某个app下的迁移文件。如果后面没有app,那么将查看INSTALLED_APPS中所有的迁移文件。

sqlmigrate:查看某个迁移文件在映射到数据库中的时候,转换的SQL语句

转载于:https://www.cnblogs.com/limaomao/p/9446091.html

你可能感兴趣的文章
mybatis之xml中日期时间段查询的sql语句
查看>>
污染物在线自动监控(监测)系统数据传输标准 (HJ212-2017)-空气质量监测数据包构造...
查看>>
【Python】django模型models的外键关联使用
查看>>
httperf ---linux web站点压力测试
查看>>
JAVA基础知识(五)数据类型转换
查看>>
hdu-5583 Kingdom of Black and White(数学,贪心,暴力)
查看>>
算法与设计模式
查看>>
(4)理解 neutron ml2---port创建流程代码解析
查看>>
python List
查看>>
Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'userinfo.
查看>>
免费资源:Polaris UI套件 + Linecons图标集(AI, PDF, PNG, PSD, SVG)
查看>>
http响应状态码大全
查看>>
C# winform 使用DsoFramer 创建 显示office 文档
查看>>
找工作的一些感悟——前端小菜的成长
查看>>
C#委托和事件的应用Observer模式实例
查看>>
codevs1018 单词接龙(DFS)
查看>>
内容分发系统MediaEW:助新闻媒体转投HTML5
查看>>
HTML5 Canvas ( 径向渐变, 升级版的星空 ) fillStyle, createRadialGradient
查看>>
Stanford Local Programming Contest 2011
查看>>
Sql server锁,独占锁,共享锁,更新锁,乐观锁,悲观锁
查看>>