删除尚未迁移的迁移

Posted

技术标签:

【中文标题】删除尚未迁移的迁移【英文标题】:Delete migrations that haven't been migrated yet 【发布时间】:2016-04-02 19:49:01 【问题描述】:

我设置了一个我现在意识到是错误的键。它设置为迁移 0005。我所做的最后一次迁移是 0004。我现在到了 0008。我想用当前的 models.py 针对当前的数据库模式重建迁移。迁移 0005 不再相关,已从 models.py 中删除。迁移0005也是一个IntegrityError,所以不删除不应该删除的数据就无法应用。

如何通过迁移 0005 以便可以迁移?

【问题讨论】:

如果0005还没有应用,难道不能删除migrations 0005-0008,然后再运行makemigrations吗? @schwobaseggl 是的,我该怎么做? 您从migrations 文件夹中删除了实际文件。如果已经应用了超过 0004 的任何迁移,您可以通过运行 migrate <appname> 0004 尝试取消应用它们。但是,这可能会或可能不会起作用,具体取决于这些迁移的性质。 @schwobaseggl 我需要从迁移表中删除任何内容吗? 寻找squashmigrations 【参考方案1】:

只需从 migrations/ 文件夹中删除 0005-0008 迁移文件。 回覆。数据库表,如果未应用迁移,则无需从那里删除任何内容。您可以检查自己的 django_migrations 表条目以确定。

【讨论】:

以上是关于删除尚未迁移的迁移的主要内容,如果未能解决你的问题,请参考以下文章

已删除的迁移文件仍在迁移

Laravel 迁移:使用 artisan 命令删除特定表并删除迁移文件

如何在压缩它们后删除 django 迁移?

Laravel:在迁移之前删除迁移:重置

删除 sequelize 迁移中的约束

Laravel 迁移:删除特定表