详解重置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使用xmlrpc实例讲解
Dec 17 Python
Python编程实现二分法和牛顿迭代法求平方根代码
Dec 04 Python
python实现随机梯度下降(SGD)
Mar 24 Python
Python 实现淘宝秒杀的示例代码
Jan 02 Python
python中正则表达式 re.findall 用法
Oct 23 Python
在Python中,不用while和for循环遍历列表的实例
Feb 20 Python
Python3模拟curl发送post请求操作示例
May 03 Python
pytorch获取vgg16-feature层输出的例子
Aug 20 Python
python内置函数sorted()用法深入分析
Oct 08 Python
Django中F函数的使用示例代码详解
Jul 06 Python
Python安装并操作redis实现流程详解
Oct 13 Python
Python采集股票数据并制作可视化柱状图
Apr 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
smarty+adodb+部分自定义类的php开发模式
2006/12/31 PHP
一步一步学习PHP(2)――PHP类型
2010/02/15 PHP
YiiFramework入门知识点总结(图文教程)
2015/12/28 PHP
php中的常用魔术方法汇总
2016/02/14 PHP
抛弃 PHP 代价太高
2016/04/26 PHP
Laravel 5.3 学习笔记之 安装
2016/08/28 PHP
Underscore.js 的模板功能介绍与应用
2012/12/24 Javascript
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
js中arguments的用法(实例讲解)
2013/11/30 Javascript
js实现iframe跨页面调用函数的方法
2014/12/13 Javascript
JQuery中Ajax()的data参数类型实例分析
2015/12/15 Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
2016/05/20 Javascript
AngularJS1.X学习笔记2-数据绑定详解
2017/04/01 Javascript
基于Two.js实现星球环绕动画效果的示例
2017/11/06 Javascript
vue中阻止click事件冒泡,防止触发另一个事件的方法
2018/02/08 Javascript
React Native悬浮按钮组件的示例代码
2018/04/05 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
vue-cli项目无法用本机IP访问的解决方法
2018/09/20 Javascript
详解js根据百度地图提供经纬度计算两点距离
2019/05/13 Javascript
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
JS实现判断移动端PC端功能
2020/02/21 Javascript
javascript实现雪花飘落效果
2020/08/19 Javascript
[03:31]DOTA2英雄基础教程 大地之灵
2013/12/17 DOTA
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
详解python异步编程之asyncio(百万并发)
2018/07/07 Python
Falsk 与 Django 过滤器的使用与区别详解
2019/06/04 Python
python中将两组数据放在一起按照某一固定顺序shuffle的实例
2019/07/15 Python
python属于解释语言吗
2020/06/11 Python
解决PyCharm不在run输出运行结果而不是再Console里输出的问题
2020/09/21 Python
Python return语句如何实现结果返回调用
2020/10/15 Python
CSS3色彩模式有哪些?CSS3 HSL色彩模式的定义
2016/04/26 HTML / CSS
体育教师自我鉴定
2014/02/12 职场文书
CSS3实现列表无限滚动/轮播效果
2021/06/23 HTML / CSS
Nginx配置文件详解以及优化建议指南
2021/09/15 Servers
python flappy bird小游戏分步实现流程
2022/02/15 Python