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的SQLAlchemy框架使用入门
Apr 29 Python
python中range()与xrange()用法分析
Sep 21 Python
python通过elixir包操作mysql数据库实例代码
Jan 31 Python
关于django 数据库迁移(migrate)应该知道的一些事
May 27 Python
关于Pycharm无法debug问题的总结
Jan 19 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
May 16 Python
浅析python redis的连接及相关操作
Nov 07 Python
Python加密模块的hashlib,hmac模块使用解析
Jan 02 Python
python对XML文件的操作实现代码
Mar 27 Python
Python中使用threading.Event协调线程的运行详解
May 02 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
Sep 04 Python
python 制作磁力搜索工具
Mar 04 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
《雄兵连》《烈阳天道》真的来了
2020/07/13 国漫
php实现映射操作实例详解
2019/10/02 PHP
Javascript中暂停功能的实现代码
2007/03/04 Javascript
JQuery获取各种宽度、高度(format函数)实例
2013/03/04 Javascript
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
javascript获取浏览器类型和版本的方法(js获取浏览器版本)
2014/03/13 Javascript
js识别uc浏览器的代码
2015/11/06 Javascript
JS简单实现String转Date的方法
2016/03/02 Javascript
JavaScript操作 url 中 search 部分方法函数
2016/06/15 Javascript
基于jQuery的ajax方法封装
2016/07/14 Javascript
js 定义对象数组(结合)多维数组方法
2016/07/27 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
2017/08/28 Javascript
node中间层实现文件上传功能
2018/06/11 Javascript
webpack多入口多出口的实现方法
2018/08/17 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
浅析vue cli3 封装Svgicon组件正确姿势(推荐)
2020/04/27 Javascript
基于JavaScript实现随机点名器
2021/02/25 Javascript
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
Python深入学习之特殊方法与多范式
2014/08/31 Python
Python获取系统所有进程PID及进程名称的方法示例
2018/05/24 Python
python opencv 图像边框(填充)添加及图像混合的实现方法(末尾实现类似幻灯片渐变的效果)
2020/03/09 Python
Python小白不正确的使用类变量实例
2020/05/29 Python
Keras:Unet网络实现多类语义分割方式
2020/06/11 Python
基于CentOS搭建Python Django环境过程解析
2020/08/24 Python
python实现跨年表白神器--你值得拥有
2021/01/04 Python
测绘工程系学生的自我评价
2013/11/30 职场文书
护理学专业推荐信
2013/12/03 职场文书
党员承诺书格式
2014/05/21 职场文书
小学师德标兵先进事迹材料
2014/05/25 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
2015年推普周活动方案
2015/05/06 职场文书
身份证丢失证明
2015/06/19 职场文书
css3 实现文字闪烁效果的三种方式示例代码
2021/04/25 HTML / CSS
TV动画《八十龟酱观察日记》第四季宣传PV公布
2022/04/06 日漫