SQLAlchemy удаление многих для многих сирот

Я пытаюсь использовать SQLAlchemy для реализации базовой модели групп пользователей, в которой пользователи могут иметь несколько групп, а группы могут иметь несколько пользователей.

Когда группа становится пустой, я хочу, чтобы группа была удалена (наряду с другими вещами, связанными с группой. К счастью, каскад SQLAlchemy прекрасно работает в этих более простых ситуациях).

Проблема в том, что cascade = 'all, delete-orphan' не делает именно то, что я хочу; вместо удаления группы, когда группа становится пустой, она удаляет группу, когдаЛюбые участник покидает группу.

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

Каков наилучший способ удаления группы, когда все ее члены уходят и имеют этот каскад удаления для связанных объектов.

Я понимаю, что я мог бы сделать это вручную, найдя каждое место в моем коде, где пользователь может покинуть группу, и затем сделать то же самое, что и триггер, однако, я боюсь, что я пропущу места в коде (и я ленивый).

Ответы на вопрос(2)

Ваш ответ на вопрос