详解重置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使用心得之获得github代码库列表
Jun 25 Python
Python中文件操作简明介绍
Apr 13 Python
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
Jul 27 Python
python Selenium爬取内容并存储至MySQL数据库的实现代码
Mar 16 Python
Python线性回归实战分析
Feb 01 Python
Python可迭代对象操作示例
May 07 Python
简单易懂Pytorch实战实例VGG深度网络
Aug 27 Python
python打印n位数“水仙花数”(实例代码)
Dec 25 Python
实例讲解Python 迭代器与生成器
Jul 08 Python
django跳转页面传参的实现
Sep 17 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
Oct 27 Python
Python使用pandas导入csv文件内容的示例代码
Dec 24 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下检测字符串是否是utf8编码的代码
2008/06/28 PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
2013/07/01 PHP
Codeigniter整合Tank Auth权限类库详解
2014/06/12 PHP
YII实现分页的方法
2014/07/09 PHP
yii操作session实例简介
2014/07/31 PHP
Thinkphp中数据按分类嵌套循环实现方法
2014/10/30 PHP
Nginx下配置codeigniter框架方法
2015/04/07 PHP
php 常用的系统函数
2017/02/07 PHP
Django 标签筛选的实现代码(一对多、多对多)
2018/09/05 PHP
php array_chunk()函数用法与注意事项
2019/07/12 PHP
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
PHP中CURL的几个经典应用实例
2015/01/23 Javascript
JS定义网页表单提交(submit)的方法
2015/03/20 Javascript
详解页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
2015/12/03 Javascript
基于Javascript倒计时效果
2016/12/22 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
Vue项目总结之webpack常规打包优化方案
2019/06/06 Javascript
微信小程序简单的canvas裁剪图片功能详解
2019/07/12 Javascript
node.js实现上传文件功能
2019/07/15 Javascript
node.js实现带进度条的多文件上传
2020/03/27 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
python中Genarator函数用法分析
2015/04/08 Python
python学习之第三方包安装方法(两种方法)
2015/07/30 Python
python3爬取各类天气信息
2018/02/24 Python
PyTorch基本数据类型(一)
2019/05/22 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
在Python中利用pickle保存变量的实例
2019/12/30 Python
python基于event实现线程间通信控制
2020/01/13 Python
python自动化测试三部曲之request+django实现接口测试
2020/10/07 Python
python 实现表情识别
2020/11/21 Python
Swanson中国官网:美国斯旺森健康产品公司
2021/03/01 全球购物
写自荐信有哪些不宜?
2013/10/17 职场文书
商务英语本科生的自我评价分享
2013/11/15 职场文书
实习生岗位职责
2014/04/12 职场文书
python实现ROA算子边缘检测算法
2021/04/05 Python
python中opencv实现图片文本倾斜校正
2021/06/11 Python