Integrity-error django :violates not-null constraint
Я создаю приложение для социальных сетей, где все действия завершаются в одном и том же графе. Однако при использовании кнопки like я получаю ошибку, даже если код выглядит точно так же, как и в версии dislike. Ошибка выглядит так:
IntegrityError at /like-post
null value in column "num_interactions_total" of relation "core_likepost" violates not-null constraint
DETAIL: Failing row contains (98, a4aaa95b-a3a5-49a6-8f63-de768bfa0786, 2023-02-02 18:01:13.121023+00, , 1, null, 7).
но счетчик num_interactions_total уже удален и больше не существует ни в модели, ни в views.py. Я также удалил миграции. Я использую базу данных postgresql.
Я немного запутался, почему он выдает ошибку только с этой кнопкой, а не со всеми остальными... Как мне избежать ошибки нуля?
Вот модели и мнения из разряда "нравится" и "не нравится":
Я знаю, что код довольно грязный. Но откуда берется ошибка?
Проблема в том, что вы удалили в models.py, миграции, но забыли удалить в базе данных.
Вы можете вручную удалить его в db, или сделать это с помощью команд консоли
Предположим, у вас есть 2 миграции в приложении test_app:
0001_test_1.py
0002_test_2.py #have column
num_interactions_total
Теперь хочу удалить num_interactions_total
. Вы можете отменить миграции следующим образом:
python manage.py migrate test_app 0001_test_1
Вы вернете базу данных в миграцию 0001_test_1
, вернете все изменения в 0002_test_2
- удалите столбец num_interactions_total