Django如何重置migration的几种情景

作者:卓修武 时间:2021-11-17 14:35:34 

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

  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

来源:https://blog.csdn.net/zhuoxiuwu/article/details/52167599

标签:Django,重置,migration
0
投稿

猜你喜欢

  • python中实现数组和列表读取一列的方法

    2021-04-07 08:04:48
  • 一个修改Oracle数据库用户密码的小诀窍

    2009-09-30 15:29:00
  • python爬虫框架scrapy代理中间件掌握学习教程

    2021-03-22 15:34:54
  • PyTorch中关于tensor.repeat()的使用

    2023-06-26 07:13:35
  • 使用PyTorch实现随机搜索策略

    2021-05-16 02:33:02
  • Django与AJAX实现网页动态数据显示的示例代码

    2022-11-05 01:10:17
  • 用不着妄自菲薄对ASP和ASP程序员的一些话

    2007-08-22 15:09:00
  • Python登录注册验证功能实现

    2022-10-17 04:53:00
  • 使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)

    2023-07-01 06:32:45
  • 在python中利用try..except来代替if..else的用法

    2023-09-12 17:50:10
  • asp如何正确显示数据库里同时存在的GB码和BIG5编码?

    2010-06-28 18:26:00
  • php源码的使用方法讲解

    2023-06-17 21:47:02
  • Dreamweaver使用疑难解答

    2009-09-13 18:41:00
  • Pycharm设置界面全黑的方法

    2021-09-15 11:13:51
  • 详解OpenCV实现特征提取的方法

    2022-10-05 11:15:28
  • ASp使用AspJpeg组件制作透明文字水印

    2008-01-15 20:25:00
  • 对SQL Server聚集索引的指示综合描述

    2010-08-31 14:25:00
  • Python实现获取视频时长功能

    2021-11-25 03:33:57
  • 求英文字母或数字或下划线或汉字的js正则表达式

    2009-08-04 17:59:00
  • 详解python实现多张多格式图片转PDF并打包成exe

    2022-06-16 15:43:38
  • asp之家 网络编程 m.aspxhome.com