guillotina.transactions

guillotina.transactions.commit(*, txn=None, warn=True)

Commit the current active transaction.

Parameters:txn (Optional[guillotina.db.interfaces.ITransaction]) – transaction to commit
Return type:None
guillotina.transactions.abort(*, txn=None)

Abort the current active transaction.

Parameters:txn (Optional[guillotina.db.interfaces.ITransaction]) – transaction to abort
Return type:None
guillotina.transactions.get_tm()

Return shared transaction manager (from request)

This is used together with “with” syntax for wrapping mutating code into a request owned transaction.

Example:

with get_tm().transaction() as txn:  # begin transaction txn

    # do something

# transaction txn commits or raises ConflictError
Return type:Optional[guillotina.db.interfaces.ITransactionManager]
guillotina.transactions.get_transaction()

Return the current active transaction.

Return type:Optional[guillotina.db.interfaces.ITransaction]
class guillotina.transactions.transaction(*, db=None, tm=None, abort_when_done=False, adopt_parent_txn=False, execute_futures=True, read_only=False)

Execute a transaction as async context manager and automatically close connection after done.

>>> async with transaction() as txn:
>>>   pass
Parameters:
  • db – db to operate transaction on
  • tm – transaction manager to retrieve transaction from
  • abort_when_done – Abort transaction when done (defaults to false)
  • adopt_parent_txn – If this is a sub-transaction, use parent’s registered objects
  • execute_futures – Execute registered futures with transaction after done (defaults to true)
  • read_only – Is this a read_only txn? (default to false)