更改SQLAlchemy的Session.delete()行为

时间:2012-01-18 10:28:25

标签: mysql sqlalchemy

SQLAlchemy delete()的{​​{1}}方法是否存在任何配置可能性?我想在数据库中标记带有删除标志的相应对象,而不是从中删除。有没有办法实现这个目标?目的是在不损失SQLAlchemy级联功能优势的情况下构建没有破坏性更新的数据库。

1 个答案:

答案 0 :(得分:4)

创建您自己的继承自Session的会话类,并使用您自己的逻辑覆盖delete()方法(对于那些需要logical delete的类),回退到另一个的默认实现对象。如果您使用sessionmaker或类似工厂,也可以在class_参数中提供您的课程。

希望这能回答你的问题。但是,在说过/写过之后,对于逻辑删除有 SOOO MUCH MORE ,特别是在Referential Integrity的术语中,可以写一系列文章这一点。