关于django 数据库迁移(migrate)应该知道的一些事


Posted in Python onMay 27, 2018

命令

首先数据库迁移的两大命令:

python manage.py makemigrations & python manage.py migrate

前者是将model层转为迁移文件migration,后者将新版本的迁移文件执行,更新数据库。

这两中命令调用默认为全局,即对所有最新更改的model或迁移文件进行操作。如果想对部分app进行操作,就要在其后追加app name:

$ python manage.py makemigrations app_name
$ python manage.py migrate app_name

如果想要精确到某个迁移文件(0004_xxx.py):

$ python manage.py migrate app_name 0004

如果想看迁移文件的执行状态,可以用showmigrations命令查看:

$ python manage.py showmigrations
admin
 [X] 0001_initial
auth
 [X] 0001_initial
 [X] 0002_alter_permission_name_max_length

显示django已知的migrations和状态。

错误

数据库的命令稍有不慎可能就会掉坑。特别是migrate命令,由于django的数据库中包含了migrations的记录,如果migrations文件丢失,很可能造成migrate失败。所以有必要将migrations文件加入版本控制,保证开发时的migrations记录和文件相匹配。

如果migrate出现了失败,很可能是因为migration文件包含的变更信息由于当前数据库的约束无法完完成。这时就应该去数据中找到这些记录或键的位置,删掉重做即可。

一般这些数据存在的表为:外键约束对应的表、auth_permission、django_content_type和django_migrations.

以上这篇关于django 数据库迁移(migrate)应该知道的一些事就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
酷! 程序员用Python带你玩转冲顶大会
Jan 17 Python
Python使用matplotlib简单绘图示例
Feb 01 Python
TensorFlow实现MLP多层感知机模型
Mar 09 Python
python 统计列表中不同元素的数量方法
Jun 29 Python
Python中函数参数匹配模型详解
Jun 09 Python
Pytorch中accuracy和loss的计算知识点总结
Sep 10 Python
Python笔记之工厂模式
Nov 20 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
Feb 15 Python
Python如何输出整数
Jun 07 Python
解决c++调用python中文乱码问题
Jul 29 Python
通过代码简单了解django model序列化作用
Nov 12 Python
python 实用工具状态机transitions
Nov 21 Python
解决Django migrate No changes detected 不能创建表的问题
May 27 #Python
django 在原有表格添加或删除字段的实例
May 27 #Python
用python写扫雷游戏实例代码分享
May 27 #Python
和孩子一起学习python之变量命名规则
May 27 #Python
儿童学习python的一些小技巧
May 27 #Python
django初始化数据库的实例
May 27 #Python
django 删除数据库表后重新同步的方法
May 27 #Python
You might like
[原创]php正则删除img标签的方法示例
2017/05/27 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
2018/04/21 PHP
jquery 分页控件实现代码
2009/11/30 Javascript
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/03 Javascript
IE浏览器中图片onload事件无效的解决方法
2014/04/29 Javascript
JS常用字符串方法(推荐)
2021/01/15 Javascript
Javascript 高性能之递归,迭代,查表法详解及实例
2017/01/08 Javascript
jQuery插件HighCharts绘制2D饼图效果示例【附demo源码下载】
2017/03/21 jQuery
Vuex之理解Getters的用法实例
2017/04/19 Javascript
微信小程序实现缓存根据不同的id来进行设置和读取缓存
2017/06/12 Javascript
详解VUE中v-bind的基本用法
2017/07/13 Javascript
ReactNative短信验证码倒计时控件的实现代码
2017/07/20 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
JavaScript 中的 this 工作原理
2018/06/20 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
vue中keep-alive组件的入门使用教程
2019/06/06 Javascript
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
vue使用transition组件动画效果的实例代码
2021/01/28 Vue.js
[02:23]完美世界全国高校联赛街访DOTA2第一期
2019/11/28 DOTA
python中的编码知识整理汇总
2016/01/26 Python
mysql 之通过配置文件链接数据库
2017/08/12 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
2019/07/04 Python
python安装scipy的步骤解析
2019/09/28 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
2019/10/30 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
2020/11/24 Python
戴森台湾线上商城:Dyson Taiwan
2018/05/21 全球购物
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
班级道德讲堂实施方案
2014/02/24 职场文书
大学生评语大全
2014/04/18 职场文书
国家励志奖学金个人先进事迹材料
2014/05/04 职场文书
惹女朋友生气检讨书
2015/05/06 职场文书
2016年党课培训学习心得体会
2016/01/07 职场文书
团队拓展训练心得体会
2016/01/12 职场文书
Golang 实现超大文件读取的两种方法
2021/04/27 Golang
使用refresh_token实现无感刷新页面
2022/04/26 Javascript