Я хотел бы сохранить данные, когда мы delete
вместо soft-delete
(который использует поле is_deleted), я хотел бы переместить данные в другую таблицу (для удаленных строк)
Я не знаю, как называется название стратегии. называется архивирование? удаление двух таблиц?
Чтобы сделать эту работу,
Мне нужно иметь возможность делать
-
для данного объекта (который будет удален), найдите все другие объекты, у которых есть внешний ключ или ключ один к одному. (это можно сделать с помощью qaru.site/info/43671/..., на самом деле сложнее, чем этого недостаточно)
-
вставить новый объект и все объекты, найденные в # 1, указать на этот новый объект
-
удалить объект
(essentiall Я делаю каскадное перемещение вместо каскадного удаления, 1 ~ 3 шаг должен выполняться рекурсивным образом)
Было бы очень удобно создать mixin для этого, поддерживающий delete()
и undelete()
для объекта и для набора запросов.
Кто-нибудь создал такого типа?