详解重置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操作json数据的一个简单例子
Apr 17 Python
python字符串过滤性能比较5种方法
Jun 22 Python
python使用邻接矩阵构造图代码示例
Nov 10 Python
pygame实现简易飞机大战
Sep 11 Python
Python实现获取系统临时目录及临时文件的方法示例
Jun 26 Python
Python实现K折交叉验证法的方法步骤
Jul 11 Python
pytorch自定义初始化权重的方法
Aug 17 Python
Python使用Tkinter实现滚动抽奖器效果
Jan 06 Python
浅析Python requests 模块
Oct 09 Python
Pycharm自动添加文件头注释和函数注释参数的方法
Oct 23 Python
python实现简易名片管理系统
Apr 11 Python
Python实现拼音转换
Jun 07 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/11/05 PHP
深入file_get_contents与curl函数的详解
2013/06/25 PHP
PHP中字符安全过滤函数使用小结
2015/02/25 PHP
PHP实现登录注册之BootStrap表单功能
2017/09/03 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
JS BASE64编码 window.atob(), window.btoa()
2021/03/09 Javascript
iframe 自适应高度[在IE6 IE7 FF下测试通过]
2009/04/13 Javascript
JS 用6N±1法求素数 实例教程
2009/10/20 Javascript
url 特殊字符 传递参数解决方法
2010/01/01 Javascript
jQuery性能优化28条建议你值得借鉴
2013/02/16 Javascript
jQuery自带的一些常用方法总结
2014/09/03 Javascript
jquery根据锚点offset值实现动画切换
2014/09/11 Javascript
js函数内变量的作用域分析
2015/01/12 Javascript
jquery事件绑定解绑机制源码解析
2016/09/19 Javascript
浅谈js之字面量、对象字面量的访问、关键字in的用法
2016/11/20 Javascript
详解vue嵌套路由-params传递参数
2017/05/23 Javascript
浅谈webpack+react多页面开发终极架构
2018/11/11 Javascript
Web安全之XSS攻击与防御小结
2018/12/13 Javascript
详解React项目中碰到的IE问题
2019/03/14 Javascript
vue中typescript装饰器的使用方法超实用教程
2019/06/17 Javascript
使用js和canvas实现时钟效果
2020/09/08 Javascript
vue实现点击出现操作弹出框的示例
2020/11/05 Javascript
Python中datetime常用时间处理方法
2015/06/15 Python
pandas全表查询定位某个值所在行列的方法
2018/04/12 Python
Python下应用opencv 实现人脸检测功能
2019/10/24 Python
python+adb+monkey实现Rom稳定性测试详解
2020/04/23 Python
Pandas把dataframe或series转换成list的方法
2020/06/14 Python
澳大利亚女士时装在线:Rockmans
2018/09/26 全球购物
领先的英国注册在线药房 :Simply Meds Online
2019/03/28 全球购物
Vinatis德国:法国领先的葡萄酒邮购公司
2020/09/07 全球购物
八年级英语教学反思
2014/01/09 职场文书
大学生职业生涯规划书范文
2014/01/14 职场文书
主持人婚宴答谢词
2014/01/28 职场文书
教师党员学习十八届四中全会思想汇报
2014/11/03 职场文书
Python 详解通过Scrapy框架实现爬取百度新冠疫情数据流程
2021/11/11 Python
tomcat正常启动但网页却无法访问的几种解决方法
2022/05/06 Servers