详解重置Django migration的常见方式
作者:lxz 时间:2022-10-30 13:21:17
根据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
标签:Django,migration,重置
0
投稿
猜你喜欢
Python 可迭代对象 iterable的具体使用
2021-08-28 08:24:32
详述如何提高MySQL中数据装载效率
2009-10-26 10:27:00
Python List列表对象内置方法实例详解
2023-08-21 12:49:58
asp如何调用DLL来加快服务器的执行速度?
2009-11-15 20:07:00
pandas实现按行选择的示例代码
2021-08-04 01:53:50
MySql InnoDB存储引擎之Buffer Pool运行原理讲解
2024-01-27 01:46:50
SQLServer三种开窗函数详细用法
2024-01-20 09:03:00
MySQL的DATE_FORMAT函数的使用
2024-01-18 09:52:28
MySQL 常用引擎总结分享
2024-01-27 04:05:28
Go 值传递与引用传递的方法
2023-06-25 03:11:11
Python中常用功能的实现代码分享
2021-02-25 00:26:08
python读取文件名并改名字的实例
2021-03-19 12:45:37
python实现按任意键继续执行程序
2021-02-12 12:47:10
F.conv2d pytorch卷积计算方式
2021-06-26 07:38:41
Vue实现页面添加水印功能
2024-04-28 09:24:06
MySQL EXPLAIN语句的使用示例
2024-01-18 15:59:53
httpwatch 的页面元素加载时间表
2008-02-13 08:28:00
如何在ADO服务器端利用好缓存技术?
2010-06-17 12:49:00
vue中iframe的使用及说明
2024-05-13 09:37:25
Python通过Pygame绘制移动的矩形实例代码
2023-09-05 13:28:31