Django:安全地移除旧的迁移?

Vik*_*ikR 9 django django-models python-3.x django-migrations

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

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

以下是其中一些的样子:

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

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

小智 13

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

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

  1. 使用python manage.py migrate your_app_name XXXX的情况下,要在XXXX迁移后不应用迁移。否则用于python manage.py migrate your_app_name zero完全不应用所有迁移。

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

  3. 删除.pymigrations/ 下您未应用的文件。

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

如果您要寻找的是将所有迁移合并为一个,请执行上述步骤删除所有迁移,然后运行python manage.py makemigrations your_app_name以创建单个迁移文件。之后运行python manage.py migrate your_app_name就完成了。


Mad*_*bat 5

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

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

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

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

您的第一个屏幕截图不是 Django,而是某种 JS 项目。