关于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 相关文章推荐
Flask框架的学习指南之制作简单blog系统
Nov 20 Python
python创建列表和向列表添加元素的实现方法
Dec 25 Python
一个可以套路别人的python小程序实例代码
Apr 09 Python
基于Python打造账号共享浏览器功能
May 30 Python
python如何实现从视频中提取每秒图片
Oct 22 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
Jan 20 Python
python实现ip地址的包含关系判断
Feb 07 Python
Pandas将列表(List)转换为数据框(Dataframe)
Apr 24 Python
pycharm第三方库安装失败的问题及解决经验分享
May 09 Python
python中元组的用法整理
Jun 15 Python
Django自带的用户验证系统实现
Dec 18 Python
Python 多线程处理任务实例
Nov 07 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简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
深入解析PHP中SESSION反序列化机制
2017/03/01 PHP
Laravel使用RabbitMQ的方法示例
2019/06/18 PHP
javascript SocialHistory 检查访问者是否访问过某站点
2008/08/02 Javascript
Javascript 继承机制的实现
2009/08/12 Javascript
基于JQuery的模拟苹果桌面Dock效果(稳定版)
2012/10/15 Javascript
js隐藏与显示回到顶部按钮及window.onscroll事件应用
2013/01/25 Javascript
通过javascript把图片转化为字符画
2013/10/24 Javascript
js实现倒计时时钟的示例代码
2013/12/17 Javascript
jQuery异步加载数据并添加事件示例
2014/08/24 Javascript
javascript实现删除前弹出确认框
2015/06/04 Javascript
JS实现关闭当前页而不弹出提示框的方法
2016/06/22 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
vue-cli+webpack记事本项目创建
2017/04/01 Javascript
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
vue axios 二次封装的示例代码
2017/12/08 Javascript
jQuery简单实现向列表动态添加新元素的方法示例
2017/12/25 jQuery
angular第三方包开发整理(小结)
2018/04/19 Javascript
Vue实现按钮旋转和移动位置的实例代码
2018/08/09 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
2019/03/06 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
[04:49]期待西雅图之战 2016国际邀请赛中国区预选赛WINGS战队赛后采访
2016/06/29 DOTA
[04:16]完美世界DOTA2联赛PWL S2 集锦第一期
2020/11/23 DOTA
用pickle存储Python的原生对象方法
2017/04/28 Python
Python 用三行代码提取PDF表格数据
2019/10/13 Python
python time()的实例用法
2020/11/03 Python
乌克兰时尚鞋子和衣服购物网站:Born2be
2018/05/24 全球购物
Maxpeedingrods美国:高性能汽车零件
2020/02/14 全球购物
高中生家长会演讲稿
2014/01/14 职场文书
动漫专业高职生职业生涯规划书
2014/02/15 职场文书
和解协议书
2014/04/16 职场文书
后进基层党组织整改方案
2014/10/25 职场文书
力克胡哲观后感
2015/06/10 职场文书
MySQL中的引号和反引号的区别与用法详解
2021/10/24 MySQL
python模块与C和C++动态库相互调用实现过程示例
2021/11/02 Python
Python实现自动玩连连看的脚本分享
2022/04/04 Python