Add "commit" argument to Base model delete()
In case we want to bundle db actions into a single transaction, we can now use delete(commit=False) to prevent the transaction from being committed immediately. This is useful when e.g. deleting a User() and thousands of his MediaEntries in a single commit. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
This commit is contained in:
parent
fa2f6ba162
commit
329e39034b
@ -79,11 +79,13 @@ class GMGTableBase(object):
|
|||||||
sess.add(self)
|
sess.add(self)
|
||||||
sess.commit()
|
sess.commit()
|
||||||
|
|
||||||
def delete(self):
|
def delete(self, commit=True):
|
||||||
|
"""Delete the object and commit the change immediately by default"""
|
||||||
sess = object_session(self)
|
sess = object_session(self)
|
||||||
assert sess is not None, "Not going to delete detached %r" % self
|
assert sess is not None, "Not going to delete detached %r" % self
|
||||||
sess.delete(self)
|
sess.delete(self)
|
||||||
sess.commit()
|
if commit:
|
||||||
|
sess.commit()
|
||||||
|
|
||||||
|
|
||||||
Base = declarative_base(cls=GMGTableBase)
|
Base = declarative_base(cls=GMGTableBase)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user