我有一个已经运行多年的webapp,其中一组模型通过外键与on_delete=models.PROTECT
互连。这就是我们想要的正常运营。但是,现在我需要从系统中删除旧数据(例如,超过2年的任何东西),因为由于数据量的原因,情况开始变慢。
作为一次性的事情,我有没有办法覆盖on_delete
保护?
答案 0 :(得分:1)
一个想法:使用1)migrations.AlterField()
进行自定义迁移,为这些类型的删除设置逻辑on_delete(CASCADE
),2)使用migrations.RunPython
来调用函数根据您选择的条件删除记录,然后3)migrations.AlterField
在迁移结束后将其设置恢复正常。显然,首先要对QA转储进行测试!