2012-01-18 14 views
5

Esistono possibilità di configurazione per il metodo delete() di SQLAlchemy Sessions? Mi piacerebbe avere gli oggetti corrispondenti contrassegnati con un flag eliminato nel database e non rimossi da esso. C'è un modo per ottenere questo? L'obiettivo è creare un database senza aggiornamenti distruttivi senza perdere i vantaggi delle funzionalità a cascata di SQLAlchemy.Modifica comportamento Session.delete() di SQLAlchemy

risposta

4

creare una classe che eredita da sessione Session e l'override del metodo delete() con la propria logica (per le classi che richiedono logical delete), ricadendo al Implementazione di default per gli altri oggetti. Se si utilizza sessionmaker o un factory simile, è possibile fornire la classe anche nel parametro class_.

Speriamo che questo risponda alla tua domanda. Ma, dopo aver detto/scritto che c'è SOOO MOLTO ALTRO alla cancellazione logica soprattutto in termini di Referential Integrity, che si può scrivere una serie di articoli su quello.

+0

Avete collegamenti ad articoli sull'implementazione del delte logico con sqlalchemy? Potresti includere alcuni nella tua risposta? –

+0

No, non ho ancora implementato cancellazioni logiche con sqlalchemy. – van

Problemi correlati