我有自定义迁移:
class Migration(migrations.Migration):
dependencies = [('blah', 'my_previous_migration'),]
operations = [
migrations.RunSQL(
sql=[("SQL HERE")],
reverse_sql=[("SQL UNDO HERE")])
]
此迁移已应用。我想创建迁移以撤消迁移,基本上遵循文档所说的内容:unapply migration
但我无法找到有关如何取消应用迁移或迁移迁移reverse_sql
部分的任何参考。
答案 0 :(得分:1)
让我们调用代码段accident
和另外一个fix
。
编写自定义SQL迁移时,通常应提供反向部分,否则无法将其回滚到先前状态而不会丢失模式和/或数据的完整性。
accident
应该提供sql来还原自己。因此,fix
回滚accident
应该包含两个互换的操作。
之后您可能想要阅读about squashing migrations。
编辑:术语操作可能会混淆,因为它是迁移系统的一部分:) - 会在sql
迁移中说:交换reverse_sql
和fix