2012-01-18 42 views
5

delete()-SQLAlchemyのSessionsの方法に関する設定はありますか?私は、対応するオブジェクトにデータベース内の削除されたフラグを付けて、それから削除しないようにしたいと思います。これを達成する方法はありますか? SQLAlchemyのカスケード機能の利点を失うことなく、破壊的な更新なしにデータベースを構築することが目的です。SQLAlchemyのSession.delete()の動作を変更する

答えて

4

Sessionから継承した独自のセッションクラスを作成し、delete()メソッドを独自のロジック(logical deleteが必要なクラス用)でオーバーライドします。他のオブジェクトのデフォルトの実装に戻します。 sessionmakerまたは同様の工場を使用している場合は、class_パラメータでクラスを指定することもできます。

うまくいけば、これはあなたの質問に答えます。しかし、言った/書いたことは、Referential Integrityの論理的な削除に対して特にSOOO MUCH MOREがあり、その記事のシリーズを書くことができます。

+0

sqlalchemyで論理delteを実装するための記事へのリンクはありますか?あなたの答えにいくつかを含めることができますか? –

+0

いいえ、私はsqlalchemyで論理削除を実装していません。 – van

関連する問題