我有一个 Django 应用程序有很多过时的迁移。我想删除旧的迁移并重新开始。
该应用程序有 14 个不同的“迁移”文件夹。
以下是其中一些的样子:
从每个文件夹中删除 所有 内容是否安全?或者,我是否必须确保只删除 部分 文件——如果删除哪些文件?
原文由 VikR 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有一个 Django 应用程序有很多过时的迁移。我想删除旧的迁移并重新开始。
该应用程序有 14 个不同的“迁移”文件夹。
以下是其中一些的样子:
从每个文件夹中删除 所有 内容是否安全?或者,我是否必须确保只删除 部分 文件——如果删除哪些文件?
原文由 VikR 发布,翻译遵循 CC BY-SA 4.0 许可协议
那要看。如果您有一个生产数据库(或任何您不能简单地删除并重新创建的数据库),那么答案是否定的,您不能安全地删除迁移。
如果您没有任何永久数据库,那么是的,您可以删除所有迁移,运行 python manage.py makemigrations --initial
它将根据您当前的模型创建新的迁移。
此外,您应该检查是否有任何迁移是手写的自定义数据迁移。如果有的话,你可能想保留它们。
.pyc 文件通常可以安全删除,前提是相关的 .py 文件仍然存在。
您的第一个屏幕截图不是 Django,看起来像某种 JS 项目。
原文由 Mad Wombat 发布,翻译遵循 CC BY-SA 4.0 许可协议
1 回答1.4k 阅读✓ 已解决
1 回答842 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
1 回答459 阅读✓ 已解决
你 永远不 应该在取消应用之前删除迁移,否则当你想要应用新的迁移时,这将是一场噩梦。
要取消应用迁移,您应该执行以下操作:
如果您想在 XXXX 迁移后取消应用迁移,请使用
python manage.py migrate your_app_name XXXX
。否则使用python manage.py migrate your_app_name zero
完全取消应用所有迁移。删除 /migrations/_ pycache _/ 下您未应用的
.pyc
文件。删除 migrations/ 下未应用的
.py
文件。现在您可以毫不费力地创建新的迁移。
如果您正在寻找的是将所有迁移压缩为一个,请执行上述步骤删除所有迁移,然后运行
python manage.py makemigrations your_app_name
以创建单个迁移文件。之后只需运行python manage.py migrate your_app_name
就大功告成了。