Używam Flask dla mojego serwera python wsgi i sqlalchemy dla całego dostępu do mojej bazy danych.przy użyciu kolby-sqlalchemy bez podklasy deklaratywnej bazy
myślę chciałbym używać rozszerzenia Kolba-sqlalchemy w mojej aplikacji, ale nie chcę używać deklaratywny klasę bazową (db.Model), zamiast tego chcę użyć bazę SQLAlchemy. ext.deklaratywny.
Czy to pokonuje cały cel używania rozszerzenia?
Mój przypadek użycia:
Chciałbym rozszerzenie mi pomóc zarządzania sesjami/silników trochę lepiej, ale chciałbym, aby obsłużyć wszystkie modele oddzielnie.
Właściwie nie miałbym nic przeciwko używaniu rozszerzenia, ale chcę napisać modele strict. Przesyłam kod z aplikacji, która nie jest zbiorem kolb, a ja będę przesuwał zmiany do tego projektu. Jeśli na przykład kolba-sqlalchemy pozwala mi oszukiwać na przykład na tablecie metadanych, spowoduje to problemy, gdy kod zostanie wypchnięty. Istnieją również części mojego kodu, które wykonują wiele sprawdzeń typów (tożsamości polimorficzne), a także pamiętam, że sprawdzanie typów w Tabeli nie jest zalecane przy korzystaniu z rozszerzenia.
Sesja/bit silnika pomógł zilustrować odpowiedź. Tak więc, w mojej aplikacji do kolb, muszę przekazać sesję do użycia. Czy po każdym użyciu muszę oczyścić sesję w jakikolwiek sposób? (Może przy użyciu ** app.do_teardown_xxx **?) – user2097818
Z parametrem autoflush = True w narzędziu sessionmaker nie jest konieczne czyszczenie. użytkownik = użytkownik (email = "[email protected]") session.add (użytkownik) session.commit() –
Nie planuję uruchamiać tego w wielu wątkach, ale będę miał oddzielne moduły każdy przy użyciu własnej nowej sesji. Planuję przekazać Sesserowi. Moduły te będą stopniowo aktualizować. Czy po wystąpieniu każdej instancji sesji powinien istnieć jakiś powód do niepokoju o integralność danych? (zakładając, że moje zatwierdzenia nie splątają się nawzajem). – user2097818