关于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 相关文章推荐
web.py获取上传文件名的正确方法
Aug 26 Python
浅谈Python的Django框架中的缓存控制
Jul 24 Python
浅谈python字典多键值及重复键值的使用
Nov 04 Python
Python实现单词翻译功能
Jun 06 Python
使用实现pandas读取csv文件指定的前几行
Apr 20 Python
详解python之协程gevent模块
Jun 14 Python
Numpy之文件存取的示例代码
Aug 03 Python
一看就懂得Python的math模块
Oct 21 Python
Django框架登录加上验证码校验实现验证功能示例
May 23 Python
解决python xx.py文件点击完之后一闪而过的问题
Jun 24 Python
利用Python实现Shp格式向GeoJSON的转换方法
Jul 09 Python
学会迭代器设计模式,帮你大幅提升python性能
Jan 03 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将数据库导出成excel的方法
2010/05/07 PHP
PHP不用第三变量交换2个变量的值的解决方法
2013/06/02 PHP
ThinkPHP使用Smarty第三方插件方法小结
2016/03/19 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
编写高性能的JavaScript 脚本的加载与执行
2010/04/19 Javascript
js 判断计算字符串长度/判断空的简单方法
2013/08/05 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
jQuery中hide()方法用法实例
2014/12/24 Javascript
js判断文本框剩余可输入字数的方法
2015/02/04 Javascript
JavaScript数据类型详解
2015/04/01 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
2015/09/15 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
2016/05/24 Javascript
JS实现兼容各种浏览器的获取选择文本的方法【测试可用】
2016/06/21 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
2017/10/09 jQuery
JavaScript实现全选取消效果
2017/12/14 Javascript
利用nginx + node在阿里云部署https的步骤详解
2017/12/19 Javascript
基于vue的验证码组件的示例代码
2019/01/22 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
2019/02/20 Javascript
JS实现轮播图效果
2020/01/11 Javascript
小程序中的箭头函数的具体使用
2020/06/19 Javascript
JavaScript实现与web通信的方法详解
2020/08/07 Javascript
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
windows下python安装pip图文教程
2018/05/25 Python
pip install urllib2不能安装的解决方法
2018/06/12 Python
python基础学习之如何对元组各个元素进行命名详解
2018/07/12 Python
python动态文本进度条的实例代码
2020/01/22 Python
tensorflow生成多个tfrecord文件实例
2020/02/17 Python
构建高效的python requests长连接池详解
2020/05/02 Python
2021年值得向Python开发者推荐的VS Code扩展插件
2021/01/25 Python
伦敦高级内衣品牌:Agent Provocateur(大内密探)
2016/08/23 全球购物
宣传部部长竞选演讲稿
2014/04/26 职场文书
语文教研活动总结
2014/07/02 职场文书
党员反对四风问题思想汇报
2014/09/12 职场文书
单方投资意向书
2015/05/11 职场文书
MySQL常见优化方案汇总
2022/01/18 MySQL