databases
databases copied to clipboard
Is it true that the "await transaction.start()" line is missing from the databases lower-level transaction API usage example?
The database help suggests the following way to use the low-level transaction API:
transaction = await database.transaction()
try:
...
except:
await transaction.rollback()
else:
await transaction.commit()
But if I try to use this code as is, I guess, the created transaction is not started. So, maybe, we have to start it explicitly as follows?
transaction = await database.transaction()
await transaction.start() # start transaction explicitly
try:
...
except:
await transaction.rollback()
else:
await transaction.commit()
Please confirm or deny my assumption.
I think, my assumption is wrong, because if I run transaction.start() it doubles in connection's transaction stack, so when I will commit it, one instance of it will still be there in transaction stack, and that may cause further problems.
So the example in databases documentation is correct.
Thank you.