Что должно произойти с данными при отключении приложения в django?
У меня есть приложение django "my_debug", которое содержит модель следующего вида:
class MyDebugEntry(Model):
user = ForeignKey(User, on_delete=CASCADE)
data = TextField()
Это приложение предназначено только для отладки, поэтому я добавляю его в INSTALLED_APPS, когда оно мне нужно, и удаляю после этого. По большей части это работает нормально.
Однако, когда я пытаюсь удалить пользователя, я получаю следующее сообщение об ошибке:
IntegrityError at /some/path/
update or delete on table "auth_users" violates foreign key constraint "mydebug_mydebugentry_user_id_d738bc03_fk_users_" on table "mydebug_mydebugentry"
DETAIL: Key (id)=(5) is still referenced from table "mydebug_mydebugentry".
Это происходит потому, что on_delete=CASCADE реализовано в python, а не в самой базе данных. Поэтому, когда приложение "my_debug" отключено, поведение on_deleted отключается вместе с ним.
Итак, как правильно это сделать? Должен ли я отбросить все таблицы приложения при удалении его из INSTALLED_APPS?