Re: psycopg3 transactions - Mailing list psycopg

From Adrian Klaver
Subject Re: psycopg3 transactions
Date
Msg-id e8dc0835-b2f2-8cc1-fdd1-5994ab1b8582@aklaver.com
Whole thread Raw
In response to Re: Re: psycopg3 transactions  (Karsten Hilbert <Karsten.Hilbert@gmx.net>)
Responses Re: psycopg3 transactions  (Karsten Hilbert <Karsten.Hilbert@gmx.net>)
List psycopg
On 10/14/21 15:16, Karsten Hilbert wrote:
>> We are still "using transactions", just with more precise, more explicit*,
>> and more flexible* semantics, represented by a context manager.
>>
>> Rolling back a transaction is possible by raising a Rollback exception
>> within a block.
>>
>> I hope this answers your question but if not please describe the scenario
>> you are thinking about.
> 
> Personally, I think the autocommit=False approach is somewhat
> safer (more conservative) for the data:
> 
>     One *always* is inside a transaction, and the default
>     behaviour is to rollback.
> 
>     Nothing is by accident automatically committed -- which can
>     happen with autocommit=True.

+1

> 
> I would certainly suggest that a context manager calls
> .rollback() during teardown rather than .commit() -- the
> context manager cannot know whether actions really are to
> be committed, even if technically possible.

If I'm following that option exists:

https://www.psycopg.org/psycopg3/docs/api/connections.html#psycopg.Connection.transaction

force_rollback (bool) – Roll back the transaction at the end of the 
block even if there were no error (e.g. to try a no-op process).

> 
> Karsten
> --
> GPG  40BE 5B0E C98E 1713 AFA6  5BC0 3BEA AC80 7D4F C89B
> 
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com



psycopg by date:

Previous
From: Karsten Hilbert
Date:
Subject: Re: Re: psycopg3 transactions
Next
From: Daniele Varrazzo
Date:
Subject: Re: psycopg3 transactions