gpt4 book ai didi

django - 如何在压缩后删除 Django 迁移?

转载 作者:行者123 更新时间:2023-12-04 23:44:57 25 4
gpt4 key购买 nike

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

You should commit this migration but leave the old ones in place; the new migration will be used for new installs. Once you are sure all instances of the code base have applied the migrations you squashed, you can delete them.



这里,删除是指只删除迁移文件,还是删除 django_migrations 表中的条目?

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

最佳答案

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

删除旧迁移的步骤是:

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

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

    关于django - 如何在压缩后删除 Django 迁移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30632989/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com