Django如何重置migration的几种情景


Posted in Python onFebruary 24, 2021

情景一:不需要原有的数据库数据

  1. 删除数据库所有的表
  2. 删除项目的migration模块中的所有 文件,除了__init__.py 文件
  3. 执行脚本
python manage.py makemigrations
python manage.py migrate

情景2:不想要删除现有的数据库,只是想重新建立 migration 文件

首先要保证,目前的migration文件和数据库是同步的,通过执行

python manage.py makemigrations

如果看到 这样的提示: No changes detected,则可以继续接下来的步骤

通过执行

python manage.py showmigrations

结果,可以看到当前项目,所有的app及对应的已经生效的migration文件如

git_hook
 [X] 0001_initial
guardian
 [X] 0001_initial
kombu_transport_django
 [X] 0001_initial
message
 (no migrations)
order
 [X] 0001_initial
pay
 [X] 0001_initial
 [x] 0002_add_model
sessions
 [X] 0001_initial

通过执行

$ python manage.py migrate --fake pay zero

这里的 pay就是你要重置的app

之后再执行 python manage.py showmigrations,你会发现 文件前的 [x] 变成了[ ]

现在,你可以删除pay 这个 app下的migrations模块中 除 init.py 之外的所有文件。

之后,执行

$ python manage.py makemigrations

程序会再次为这个app 生成 0001_initial.py 之类的文件

最重要的一步来了, 执行

python manage.py migrate --fake-inital

?fake-inital 会在数据库中的 migrations表中记录当前这个app 执行到 0001_initial.py ,但是它不会真的执行该文件中的 代码。
这样就做到了,既不对现有的数据库改动,而又可以重置 migraion 文件,妈妈再也不用在 migration模块中看到一推文件了。

参考https://simpleisbetterthancomplex.com/tutorial/2016/07/26/how-to-reset-migrations.html

到此这篇关于Django如何重置migration的几种情景的文章就介绍到这了,更多相关Django 重置migration内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python跳出循环语句continue与break的区别
Aug 25 Python
深入Python解释器理解Python中的字节码
Apr 01 Python
详解Python中dict与set的使用
Aug 10 Python
Python Socket传输文件示例
Jan 16 Python
Python反射的用法实例分析
Feb 11 Python
单利模式及python实现方式详解
Mar 20 Python
ActiveMQ:使用Python访问ActiveMQ的方法
Jan 30 Python
学生信息管理系统Python面向对象版
Jan 30 Python
Django模型序列化返回自然主键值示例代码
Jun 12 Python
基于Python中Remove函数的用法讨论
Dec 11 Python
Python深度学习之Pytorch初步使用
May 20 Python
Python 实现Mac 屏幕截图详解
Oct 05 Python
Django中的DateTimeField和DateField实现
Feb 24 #Python
Python制作运行进度条的实现效果(代码运行不无聊)
Feb 24 #Python
学点简单的Django之第一个Django程序的实现
Feb 24 #Python
python单例模式的应用场景实例讲解
Feb 24 #Python
python编写扎金花小程序的实例代码
Feb 23 #Python
Python项目实战之使用Django框架实现支付宝付款功能
Feb 23 #Python
Python接口自动化系列之unittest结合ddt的使用教程详解
Feb 23 #Python
You might like
PHP 第三节 变量介绍
2012/04/28 PHP
PHP清除数组中所有字符串两端空格的方法
2014/10/20 PHP
php去掉文件前几行的方法
2015/07/29 PHP
PHP的PDO常用类库实例分析
2016/04/07 PHP
Laravel实现自定义错误输出内容的方法
2016/10/10 PHP
javscript对象原型的一些看法
2010/09/19 Javascript
游览器中javascript的执行过程(图文)
2012/05/20 Javascript
JS控制日期显示的小例子
2013/11/23 Javascript
Seajs的学习笔记
2014/03/04 Javascript
JS 获取鼠标左右键的键值方法
2014/10/11 Javascript
AngularJS中的模块详解
2015/01/29 Javascript
javascript动画算法实例分析
2015/07/31 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
2015/11/17 Javascript
深入浅析Extjs中store分组功能的使用方法
2016/04/20 Javascript
微信公众号支付H5调用支付解析
2016/11/04 Javascript
js原生实现FastClick事件的实例
2016/11/20 Javascript
js实现简单的二级联动效果
2017/03/09 Javascript
vue 项目如何引入微信sdk接口的方法
2017/12/18 Javascript
jQuery实现鼠标响应式淘宝动画效果示例
2018/02/13 jQuery
Vue引用Swiper4插件无法重写分页器样式的解决方法
2018/09/27 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
配置一个vue3.0项目的完整步骤
2019/04/26 Javascript
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
使用Python中的greenlet包实现并发编程的入门教程
2015/04/16 Python
python3+PyQt5泛型委托详解
2018/04/24 Python
解决python中 f.write写入中文出错的问题
2018/10/31 Python
如何在Django中设置定时任务的方法示例
2019/01/18 Python
屏蔽Django admin界面添加按钮的操作
2020/03/11 Python
如何解决cmd运行python提示不是内部命令
2020/07/01 Python
使用CSS3来代替JS实现交互
2017/08/10 HTML / CSS
斯洛伐克电子产品购物网站:DATART
2020/04/05 全球购物
大学同学聚会邀请函
2014/01/29 职场文书
作风大整顿心得体会
2014/09/10 职场文书
教你如何使用Python实现二叉树结构及三种遍历
2021/06/18 Python
MySQL分区表管理命令汇总
2022/03/21 MySQL