压缩后如何删除django迁移?

meh*_*met 4 migration django squash django-migrations

Django文档说,我们可以在压缩迁移后删除它们:

您应该进行此迁移,但将旧迁移保留在原位置;新的迁移将用于新安装。一旦确定代码库的所有实例都应用了压缩的迁移,就可以删除它们。

在这里,删除是否意味着仅删除迁移文件或django_migrations表中的条目?

这里是一些背景:我只有开发机器,所以只有一个代码库。压缩一些已经应用的迁移后,我删除了文件和数据库条目。通过进行迁移测试是否可以,它没有找到任何东西。因此,一切看起来都不错。第二天,我不得不进行一些更改,并进行了迁移。当我尝试迁移时,它也尝试应用压缩的迁移(在压缩之前已部分应用)。因此,我不得不返回并在django_migrations表中重新创建条目。因此,似乎我不得不保留数据库条目。我试图确保在再次弄乱任何东西之前,先弄清楚为什么它看起来不错,然后再尝试应用压缩后的迁移。

knb*_*nbk 5

压缩迁移永远不会标记为已应用,这将在1.8.3中修复(请参阅#24628)。

删除旧迁移的步骤是:

  1. 确保应用所有替换的迁移(或不应用任何迁移)。
  2. 删除旧的迁移文件,replaces从压缩的迁移中删除属性。
  3. (解决方法)运行./manage.py migrate <app_label> <squashed_migration> --fake

当1.8.3到达时,不需要最后一步。