Datenbankverbindung der SQLAlchemy-Sitzung schließen und erneut verbinden?

8

Nehmen wir an, dass wir nach dem Laden einiger Objekte aus der SQLAlchemy-Sitzung eine Langzeitverarbeitung durchführen müssen. Wir möchten die Datenbankverbindung während der Datenverarbeitung schließen und dann die Verbindung zur Datenbank wiederherstellen. Wie man es in SQLAlchemy macht?

Oder ist es notwendig, die Sitzung zu schließen und jedes Mal neu zu erstellen und alle zugehörigen Objekte zusammenzuführen / neu zu laden? Aber ich fand, dass session.close() die Verbindung nicht schließt, auch session.connection().close() oder die an die Sitzung gebundene Verbindung schließt sie auch nicht. So, wie man die Verbindung schließt, nachdem ich eine Sitzung benutzt habe und bevor ich die Anwendung beende?

    
Gary Shi 05.04.2011, 05:00
quelle

1 Antwort

13

Bekomme die Antwort von der SQLAlchemy Google Group: benutze session.bind.dispose() nach dem Beenden der laufenden Transaktion. Es verfügt über den gesamten Verbindungspool, so dass alle Datenbankverbindungen geschlossen sind.

Und ich kann die Sitzung z. Commit oder Rollback der Sitzung, anstatt sie zu schließen. Wenn ich es später verwenden muss, werden automatisch die notwendigen Verbindungen hergestellt. Diese Methode erspart mir das erneute Erstellen der Sitzung und das Zusammenführen von Objekten.

    
Gary Shi 05.04.2011, 12:50
quelle

Tags und Links