详解重置Django migration的常见方式


Posted in Python onFebruary 15, 2019

根据django官方文档建议,开发过程中会把生成的migrations提交到git中。由于各种原因,会有一些场景需要重置migrations,故总结一些常用场景及解决办法。

场景一

不考虑数据库数据,可以完全清空数据库。

步骤:

删除所有migrations

find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*/migrations/*.pyc" -delete

删除数据库

重新生成migrations

python manage.py makemigrations
python manage.py migrate

场景二

有时候我们会直接导入完整的数据库,包括数据,这种情况下就不能简单的清空数据库。

这时我们的目的就是:清空数据库的migration history,保证以后的migrate能正常使用,但要保留其他数据。

步骤:

从数据库中删除所有非0001_initial的migration history

DELETE FROM django_migrations WHERE app IN ('your','app','labels') AND name != '0001_initial'

使用migrate命令回滚0001_initial的migration history

python manage.py migrate --fake your zero
python manage.py migrate --fake app zero
python manage.py migrate --fake labels zero

重新生成0001_initial,如果能保证已有0001_initial已是最新的,可跳过此步

find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*/migrations/*.pyc" -delete

python manage.py makemigrations

在数据库中生成新的0001_initial记录

python migrate --fake-initial

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
利用python爬取软考试题之ip自动代理
Mar 28 Python
DataFrame中去除指定列为空的行方法
Apr 08 Python
Python+OpenCV实现图像融合的原理及代码
Dec 03 Python
python 提取key 为中文的json 串方法
Dec 31 Python
导入tensorflow时报错:cannot import name 'abs'的解决
Oct 10 Python
python3.x 生成3维随机数组实例
Nov 28 Python
Python多线程通信queue队列用法实例分析
Mar 24 Python
django实现将修改好的新模型写入数据库
Mar 31 Python
Django模板之基本的 for 循环 和 List内容的显示方式
Mar 31 Python
Python连接mysql方法及常用参数
Sep 01 Python
python+openCV对视频进行截取的实现
Nov 27 Python
TensorFlow2.0使用keras训练模型的实现
Feb 20 Python
djang常用查询SQL语句的使用代码
Feb 15 #Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
Feb 15 #Python
Python提取支付宝和微信支付二维码的示例代码
Feb 15 #Python
Python实现的IP端口扫描工具类示例
Feb 15 #Python
Python标准库使用OrderedDict类的实例讲解
Feb 14 #Python
Python从文件中读取数据的方法讲解
Feb 14 #Python
python爬取cnvd漏洞库信息的实例
Feb 14 #Python
You might like
php 网上商城促销设计实例代码
2012/02/17 PHP
php批量上传的实现代码
2013/06/09 PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
2014/05/15 PHP
ThinkPHP3.1数据CURD操作快速入门
2014/06/19 PHP
thinkPHP使用post方式查询时分页失效的解决方法
2015/12/09 PHP
PHP大神的十大优良习惯
2016/09/14 PHP
网页里控制图片大小的相关代码
2006/06/25 Javascript
JS图片预加载 JS实现图片预加载应用
2012/12/03 Javascript
jquery默认校验规则整理
2014/03/24 Javascript
js获取select默认选中的Option并不是当前选中值
2014/05/07 Javascript
JavaScript学习笔记之数组随机排序
2016/03/23 Javascript
利用jquery获取select下拉框的值
2016/11/23 Javascript
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
async/await地狱该如何避免详解
2018/05/10 Javascript
jQuery选择器之基本选择器用法实例分析
2019/02/19 jQuery
JavaScript 判断数据类型的4种方法
2020/09/11 Javascript
uni-app 自定义底部导航栏的实现
2020/12/11 Javascript
[02:58]魔廷新尊——痛苦女王至宝语音台词节选
2020/06/14 DOTA
python三元运算符实现方法
2013/12/17 Python
Python3中常用的处理时间和实现定时任务的方法的介绍
2015/04/07 Python
分享Python字符串关键点
2015/12/13 Python
Python数据可视化正态分布简单分析及实现代码
2017/12/04 Python
python矩阵转换为一维数组的实例
2018/06/05 Python
解决pycharm运行时interpreter为空的问题
2018/10/29 Python
修改python plot折线图的坐标轴刻度方法
2018/12/13 Python
selenium+python环境配置教程详解
2019/05/28 Python
python机器学习库xgboost的使用
2020/01/20 Python
python 下划线的不同用法
2020/10/24 Python
Python urlopen()参数代码示例解析
2020/12/10 Python
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
skyn ICELAND官网:冰岛成分天然护肤品
2020/08/24 全球购物
《手指教学》反思
2014/02/14 职场文书
阳光体育活动实施方案
2014/05/25 职场文书
机关作风整顿个人剖析材料
2014/10/06 职场文书
总结会主持词
2015/07/02 职场文书
OpenCV 图像梯度的实现方法
2021/07/25 Python