Używam SQLAlchemy w projekcie, który nie jest aplikacją internetową. Jest to aplikacja serwerowa, która ładuje wiele różnych obiektów z bazy danych i modyfikuje je lokalnie, ale nie chce zapisywać tych aktualizacji w bazie danych za każdym razem, gdy zostanie wydane zatwierdzenie. Wcześniej współpracowałem z Django ORM przy niektórych projektach internetowych i stwierdziłem, że lepiej pasuje do tego, co próbuję osiągnąć. W Django ORM mogłem .save() każdy obiekt, kiedy tylko chciałem, bez zapisywania innych rzeczy, których może nie chcę zapisać. Rozumiem, dlaczego to działa w SQLAlchemy, ale zastanawiam się, jak mogłem to zrobić w sposób podobny do Django?Wyłączanie zatwierdzania zmian obiektu w SQLAlchemy
Aktualizacja: Aby łatwiej zrozumieć, co próbuję osiągnąć, będę zapewnić wam przykład.
Jak to działa w rzeczywistości:
a = MyModel.query.get(1)
b = MyModel.query.get(1)
a.somefield = 1
b.somefield = 2
# this will save both of changed models
session.commit()
ten sposób chcę go do pracy:
a = MyModel.query.get(1)
b = MyModel.query.get(1)
a.somefield = 1
b.somefield = 2
a.save()
# I didn't want to save b, changes of b weren't committed
Chcę mieć większą kontrolę tego, co jest rzeczywiście zapisane. Chcę zapisać zmiany każdego obiektu co 5 minut.
Czy znalazłeś własne rozwiązanie? Jeśli tak, proszę, udostępnij. –