Что должно произойти с данными при отключении приложения в 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?

Вернуться на верх