详解重置Django migration的常见方式
作者:lxz 发布时间:2022-10-30 13:21:17
标签:Django,migration,重置
根据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
来源:https://segmentfault.com/a/1190000011594347


猜你喜欢
- 引言今天我们来分享一个 Python 领域的神级第三方库 -- pycallgraph,通过该库并结合 graphviz 工具,就可以非常方
- 本文实例讲述了机器学习之KNN算法原理及Python实现方法。分享给大家供大家参考,具体如下:文中代码出自《机器学习实战》CH02,可参考本
- 过期软件破解方法: 如果你看到了这篇博文,绝对保证不虚此行。仅仅5行脚本代码,即可破解99%的过期软件。 &
- 我们都知道在9i之前,要想获得建表和索引的语句是一件很麻烦的事。我们可以通过export with rows=no来得到,但它的输出因为格式
- Nicholas Zakas是一位 JS 大师,Yahoo! 首页的前端主程。他是《高性能 Javascript》的作者,这本书值得每个程序
- 前言有些人看到这个问题觉得不是问题,是嘛,不就是df.col[]函数嘛,其实忽略了一个重点,那就是我们要省去把csv文件全部读取这个过程,因
- 一、TensorFlow常规模型加载方法保存模型tf.train.Saver()类,.save(sess, ckpt文件目录)方法参数名称功
- JSON 相关概念:序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON,
- 所有平台的Mysql下载地址为:MySQL 下载. 挑选你需要的 MySQL Community Server 版本及对应的平台。 
- 前言相信大家在日常使用mysql,可能会遇到需要同时更新两张表时,我会采用在同一个事务中使用2句sql语句分别进行更新。其实,这种需要发送2
- 前言:昨晚我正在床上睡得着着的,突然来了一条短信。什么?线上的订单无法取消!我赶紧登录线上系统,查看业务日志。发现有MySQL锁超时的错误日
- import osimport sysimport ftplibimport socket#########################
- Set objTextStream=FileSystemObject.CreateTextFile(Filename,[Overwrite]
- 301和302 Http状态有啥区别?301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于:301 redir
- 局部变量什么是局部变量通俗定义:函数内部定义的变量就叫局部变量。话不多说,代码如下:def test1(): a = 300 # 定义一个局
- 问题今天用nohup后台执行python程序,并将标准输出和错误输出重定向到一个log文件,但发现log文件隔好久才会更新,很煎熬。。。然而
- 在 Python 中,我们可以使用基本的索引操作来获取数组中的元素。然而,有时候我们需要获取一个数组的子数组,也就是只获取数组中的一部分元素
- 前言聚簇索引就是innodb默认创建的基于主键的索引结构,而且表里的数据就是直接放在聚簇索引里,作为叶节点的数据页:基于主键的数据搜索:从聚
- IDEA 插件安装 步骤IDEA里面,选择打开 File --> Settings --> Plugins在Plugins里面,
- current_date()只显示的是当前时间的日期例如:select current_date() from a ;结果:2021-08-