Django不适用迁移

时间:2016-10-14 23:47:43

标签: python django migration

我有自定义迁移:

class Migration(migrations.Migration):

    dependencies = [('blah', 'my_previous_migration'),]

    operations = [
        migrations.RunSQL(
            sql=[("SQL HERE")],
            reverse_sql=[("SQL UNDO HERE")])
    ]

此迁移已应用。我想创建迁移以撤消迁移,基本上遵循文档所说的内容:unapply migration

但我无法找到有关如何取消应用迁移或迁移迁移reverse_sql部分的任何参考。

1 个答案:

答案 0 :(得分:1)

让我们调用代码段accident和另外一个fix

编写自定义SQL迁移时,通常应提供反向部分,否则无法将其回滚到先前状态而不会丢失模式和/或数据的完整性。

accident应该提供sql来还原自己。因此,fix回滚accident应该包含两个互换的操作。

之后您可能想要阅读about squashing migrations

编辑:术语操作可能会混淆,因为它是迁移系统的一部分:) - 会在sql迁移中说:交换reverse_sqlfix