Django:安全删除旧迁移?

新手上路,请多包涵

我有一个 Django 应用程序有很多过时的迁移。我想删除旧的迁移并重新开始。

该应用程序有 14 个不同的“迁移”文件夹。

以下是其中一些的样子:

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

从每个文件夹中删除 所有 内容是否安全?或者,我是否必须确保只删除 部分 文件——如果删除哪些文件?

原文由 VikR 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 530
2 个回答

永远不 应该在取消应用之前删除迁移,否则当你想要应用新的迁移时,这将是一场噩梦。

要取消应用迁移,您应该执行以下操作:

  1. 如果您想在 XXXX 迁移后取消应用迁移,请使用 python manage.py migrate your_app_name XXXX 。否则使用 python manage.py migrate your_app_name zero 完全取消应用所有迁移。

  2. 删除 /migrations/_ pycache _/ 下您未应用的 .pyc 文件。

  3. 删除 migrations/ 下未应用的 .py 文件。

现在您可以毫不费力地创建新的迁移。

如果您正在寻找的是将所有迁移压缩为一个,请执行上述步骤删除所有迁移,然后运行 python manage.py makemigrations your_app_name 以创建单个迁移文件。之后只需运行 python manage.py migrate your_app_name 就大功告成了。

原文由 Jordan Mora 发布,翻译遵循 CC BY-SA 4.0 许可协议

那要看。如果您有一个生产数据库(或任何您不能简单地删除并重新创建的数据库),那么答案是否定的,您不能安全地删除迁移。

如果您没有任何永久数据库,那么是的,您可以删除所有迁移,运行 python manage.py makemigrations --initial 它将根据您当前的模型创建新的迁移。

此外,您应该检查是否有任何迁移是手写的自定义数据迁移。如果有的话,你可能想保留它们。

.pyc 文件通常可以安全删除,前提是相关的 .py 文件仍然存在。

您的第一个屏幕截图不是 Django,看起来像某种 JS 项目。

原文由 Mad Wombat 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题