sqlalchemy: Weit. Aktionen b. Speichern eines gemappten Obj.

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Hallo,

ich verwende SQLAlchemy zusammen mit gemappten Objekten. Im Laufe des Programms erzeuge ich neue Objekte, die unter Umständen erst eine ganze Weile später in eine Session eingefügt und damit in die DB geschrieben werden. So weit kein Problem. Ich würde nur gerne dann, wenn das Objekt schließlich in die DB geschrieben wird (also beim Aufruf von session.add oder session.commit) gerne noch ein paar weitere Aktionen ausführen. Kennt jemand da einen Hook oder eine ähnlich elegante Möglichkeit?

Bisher versehe ich die entsprechenden Klassen mit einer zusätzlichen 'save' Methode, die sich um das Speichern in der DB und die anderen Aktionen kümmert. Ich finde es jetzt aber nicht so besonders elegant, daß ich für einen Teil der gemappten Objekte bloß die save-Methode aufrufe, während ich die anderen explizit in eine Session einfügen und commiten muß. Ich könnte natürlich alle Objekte mit save-Methoden versehen, aber das scheint mir dann auch wieder zu aufwändig.

Für Anregungen bin ich wie immer sehr dankbar :)
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Du suchst vermutlich MapperExtensions, die kannst du beim verknüpfen angeben.
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Ja, das scheint tatsächlich das Gesuchte zu sein. Vielen Dank!
Antworten