Ошибка при удалении объекта

Добрый день!
При дебаге, возвращается странная ошибка при удалении объекта.
_error": “ERROR #23503 update or delete on table "document" violates foreign key constraint "document_user_user_document_pivot_rel1_id_fkey" on table "document_user_user_document_pivot"”

В модели данных у этого объекта менял связи, все сохранил, вроде все обновилось. С другими объектами таким проблем нет, все работаем по этому же алгоритму.
Логика выполнения:

Скорее всего не может удалить, потому что есть связанные объекты зависящие от него. Когда у вас есть связь, сначала нужно удалить объекты ссылающиеся на документ, а потом сам документ.

Есть еще один вариант удаления - каскадное, но насколько помню мы его ен включали чтобы избежать кейсов когда разработчик удаляет данных больше чем хотел.

Документ связан с пользователем и с организацией, но они не должны удаляться, как сначала удалить связи, а потом объект?

У меня есть еще один пример, удаление пользователя, связанного с организацией, там не возникает проблем, просто использую запрос delete и все работает

@Basil_K Помоги советом как правильно удалить

Скорее всего в других кейсах у вас связь не many-to-many, как в данном случае поэтому не создается отдельная вспомогательная pivot таблица с информацией о связи.
Ваша задача - предварительно удалить запись о данной связи. Для этого есть два варианта:

  1. Перед удалением документа сделать его update, выставив null в поле User.
  2. Сделать прямой запрос к SQL (блок SQL Exec) на удаление записей в pivot таблице. Что-то типа “DELETE from document_user_user_document_pivot WHERE rel2_id = id удаляемого документа”

Решил попробовать первый вариант, добавил вот такой алгоритм


Тост на кол-во прикрепленных пользователей, мне выводит 0
Но при этом та же ошибка вылетает (

Тост выводит количество прикрепленных пользователей, записанное в таблице. Оно не обязательно совпадает с данными в базе, это нужно логику смотреть, как в таблицу данные попадают.
Превращать системные блоки в эндпойнты и делать запросы прямо к ним - не очень хорошая идея. Лучше все-таки создать на беке БП для этого, который совершает комплексные действия.
В целом на беке Patch обнуляет данные в том в случае, если об этом прямо указано в поле nullify fields (и никакое значение не передано). В противном случае он оставляет их без изменений, так как часто из модели может передаваться буквально одно-два поля, чтобы изменить только их, а не трогать все остальные.

@user34 Получилось решить?

Честно говоря, сколько не пытался, делал апдейт на беке или на фронте, очищал поля, но так и не смог добиться результата. Потом понял, что связь многое ко многим избыточна, сделал 1 ко многим. Но в будущем у меня точно будет кейс где многое ко многим и вопрос пока не закрыт, позже к нему все равно вернуть.