2012-01-18 14 views
5

¿Hay posibilidades de configuración con respecto al delete() -metodo de Sessions de SQLAlchemy? Me gustaría que los objetos correspondientes estén marcados con una bandera eliminada en la base de datos y no se eliminen de ella. ¿Hay una manera de lograr esto? El objetivo es construir una base de datos sin actualizaciones destructivas sin perder las ventajas de las funciones en cascada de SQLAlchemy.Cambiar el comportamiento Session.delete() de SQLAlchemy

Respuesta

4

crear su propia clase que hereda de la sesión Session y reemplazar el método delete() con su propia lógica (para aquellas clases que requieren logical delete), cayendo de nuevo a la Implementación predeterminada para los demás objetos. Si usa sessionmaker o una fábrica similar, también puede proporcionar su clase en el parámetro class_.

Afortunadamente, esto responde a su pregunta. Pero, habiendo dicho/escrito eso, hay SOOO MUCHO MÁS a la eliminación lógica especialmente en el término de Referential Integrity, que uno puede escribir una serie de artículos sobre eso.

+0

¿Tiene algún vínculo a los artículos sobre la implementación del delte lógico con sqlalchemy? ¿Podría incluir algunos en su respuesta? –

+0

No, aún no he implementado eliminaciones lógicas con sqlalchemy. – van

Cuestiones relacionadas