Изменить поведение Session.delete () SQLAlchemy - PullRequest
5 голосов
/ 18 января 2012

Существуют ли какие-либо возможности конфигурации, касающиеся delete() -метода SQLAlchemy's Sessions?Я хотел бы, чтобы соответствующие объекты были помечены как удаленные в базе данных, а не удалены из нее.Есть ли способ добиться этого?Целью является создание базы данных без разрушительных обновлений без потери преимуществ каскадных функций SQLAlchemy.

1 Ответ

4 голосов
/ 18 января 2012

Создайте свой собственный класс сеанса, унаследованный от Session, и переопределите метод delete() своей собственной логикой (для тех классов, которым требуется logical delete), возвращаясь к реализации по умолчанию для других объектов. Если вы используете sessionmaker или аналогичную фабрику, вы также можете указать свой класс в параметре class_.

Надеюсь, это ответит на ваш вопрос. Но, сказав / написав, что ОЧЕНЬ БОЛЬШЕ до логического удаления, особенно в терминах Referential Integrity, можно написать серию статей по этому вопросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...