当你在终端上输入如下的命令执行数据迁移的时候:
1 | bash复制代码python manage.py makemigrations |
它报错了!
1 | bash复制代码/usr/lib/python3/dist-packages/requests/__init__.py:80: RequestsDependencyWarning: urllib3 (1.26.4) or chardet (3.0.4) doesn't match a supported version! |
面对红红的一堆的错误,怒火中烧,而 Django 又没有提供删除迁移文件的命令 🤡 ,而手动删除又非常的无趣和浪费时间!
我提供了一个 Python 写的脚本,来删除迁移文件,放到你项目的根目录并执行它吧!
1 | python复制代码import os |
整体的思路就是,先通过 os.walk 递归遍历项目根路径下所有的文件夹,找到所有名为 migrations 文件夹,除了 __init__.py 文件,删除里面所有的文件。为什么不能删除 __init__.py 文件呢?因为没有 __init__.py 文件就不是一个 Python 包了,执行迁移命令的时候就不会迁移这个 app 下的 Models
这里在提供一种思路,就是先找到所有的
migrations文件夹,然后删除它们,在原位置重新创建,记得在文件夹里面创建一个名为__init__.py的空文件哦!
为什么要选 Python 脚本来做这件事情呢?当然是 Python 的跨平台特性,这样不管是 UNIX 还是 Windows 都可以使用。
当然上面这段代码非常的丑陋 🤡 ,谁有空可以优化一下后再发我一段吧!
本文转载自: 掘金