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之不要红头文件(2)
Sep 28 Python
python实现将元祖转换成数组的方法
May 04 Python
Python下载指定页面上图片的方法
May 12 Python
深入解析Python中的descriptor描述器的作用及用法
Jun 27 Python
Python字符串拼接的几种方法整理
Aug 02 Python
详解python如何在django中为用户模型添加自定义权限
Oct 15 Python
解决使用PyCharm时无法启动控制台的问题
Jan 19 Python
浅谈Python反射 & 单例模式
Mar 21 Python
django settings.py 配置文件及介绍
Jul 15 Python
TensorFlow 显存使用机制详解
Feb 03 Python
Python GUI库PyQt5图形和特效样式QSS介绍
Feb 25 Python
Python 统计序列中元素的出现频度
Apr 26 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
fgetcvs在linux的问题
2012/01/15 PHP
PHP return语句的另一个作用
2014/07/30 PHP
教你php如何实现验证码
2016/01/20 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
Swoole实现异步投递task任务案例详解
2019/04/02 PHP
function foo的原型与prototype属性解惑
2010/11/19 Javascript
imgAreaSelect 中文文档帮助说明
2011/10/08 Javascript
javascript分页代码(当前页码居中)
2012/09/20 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
JavaScript检查某个function是否是原生代码的方法
2014/08/20 Javascript
js单独获取一个checkbox看其是否被选中
2014/09/22 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
JavaScript 不支持 indexof 该如何解决
2016/03/30 Javascript
常用的几个JQuery代码片段
2017/03/13 Javascript
vue v-on监听事件详解
2017/05/17 Javascript
vue.js移动端app实战1:初始配置详解
2017/07/24 Javascript
Angular 4.0学习教程之架构详解
2017/09/12 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
node.js文件上传重命名以及移动位置的示例代码
2018/01/19 Javascript
Node.js 获取微信JS-SDK CONFIG的方法示例
2019/05/21 Javascript
Vue 实例事件简单示例
2019/09/19 Javascript
[40:19]2018完美盛典CS.GO表演赛
2018/12/17 DOTA
Python 绘图和可视化详细介绍
2017/02/11 Python
pycharm打开命令行或Terminal的方法
2019/01/16 Python
Python时间和字符串转换操作实例分析
2019/03/16 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
2019/06/10 Python
Python应用实现处理excel数据过程解析
2020/06/19 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
2020/09/03 Python
使用CSS3的font-face字体嵌入样式的方法讲解
2016/05/13 HTML / CSS
FILA德国官方网站:来自意大利的体育和街头服饰品牌
2019/07/19 全球购物
New Balance比利时官方网站:购买鞋子和服装
2021/01/15 全球购物
医务人员竞聘职务自我评价分享
2013/11/08 职场文书
数据管理员的自我评价分享
2013/11/15 职场文书
美术指导求职信
2014/03/17 职场文书
经济信息系毕业生自荐信
2014/06/02 职场文书
2015政治思想表现评语
2015/03/25 职场文书