Re: psycopg3 transactions
От | Adrian Klaver |
---|---|
Тема | Re: psycopg3 transactions |
Дата | |
Msg-id | e8dc0835-b2f2-8cc1-fdd1-5994ab1b8582@aklaver.com обсуждение исходный текст |
Ответ на | Re: Re: psycopg3 transactions (Karsten Hilbert <Karsten.Hilbert@gmx.net>) |
Ответы |
Re: psycopg3 transactions
|
Список | 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 по дате отправления: