详解重置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 ORM框架SQLAlchemy学习笔记之关系映射实例
Jun 10 Python
Anaconda多环境多版本python配置操作方法
Sep 12 Python
Pandas中把dataframe转成array的方法
Apr 13 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
Jan 23 Python
解决python Markdown模块乱码的问题
Feb 14 Python
python实现弹窗祝福效果
Apr 07 Python
java中的控制结构(if,循环)详解
Jun 26 Python
在python tkinter界面中添加按钮的实例
Mar 04 Python
Python多线程:主线程等待所有子线程结束代码
Apr 25 Python
Jupyter notebook如何实现指定浏览器打开
May 13 Python
两行代码解决Jupyter Notebook中文不能显示的问题
Apr 24 Python
python神经网络学习 使用Keras进行简单分类
May 04 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中Session的概念
2006/10/09 PHP
vBulletin HACK----关于排版的两个HACK
2006/10/09 PHP
初步介绍PHP扩展开发经验分享
2012/09/06 PHP
ubuntu10.04配置 nginx+php-fpm模式的详解
2013/06/03 PHP
php二维数组用键名分组相加实例函数
2013/11/06 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
PHP微信分享开发详解
2017/01/14 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
JavaScript 对象的属性和方法4种不同的类型
2010/03/19 Javascript
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
2012/06/14 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
js的image onload事件使用遇到的问题
2014/07/15 Javascript
js验证上传图片的方法
2015/05/12 Javascript
JavaScript正则表达式中的ignoreCase属性使用详解
2015/06/16 Javascript
jQuery编程中的一些核心方法简介
2015/08/14 Javascript
JQuery菜单效果的两个实例讲解(3)
2015/09/17 Javascript
微信小程序 教程之WXML
2016/10/18 Javascript
轻松搞定jQuery+JSONP跨域请求的解决方案
2018/03/06 jQuery
JavaScript实现手风琴效果
2021/02/18 Javascript
linux 下实现python多版本安装实践
2014/11/18 Python
对Python subprocess.Popen子进程管道阻塞详解
2018/10/29 Python
Python装饰器基础概念与用法详解
2018/12/22 Python
Python性能分析工具Profile使用实例
2019/11/19 Python
python数据预处理 :数据抽样解析
2020/02/24 Python
html5图片上传预览示例分享
2014/04/14 HTML / CSS
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
西班牙床垫网上商店:Colchones.es
2018/05/06 全球购物
this关键字的含义
2015/04/08 面试题
优秀员工获奖感言
2014/03/01 职场文书
yy婚礼主持词
2014/03/14 职场文书
委托书的写法
2014/08/30 职场文书
详解Redis瘦身指南
2021/05/26 Redis
pandas提升计算效率的一些方法汇总
2021/05/30 Python
字节飞书面试promise.all实现示例
2022/06/16 Javascript