Hello,
I'm upgrading an application which is using Pyramid and thus zope.sqlalchemy for the transaction management. It looks like there is an issue with ORM-enabled updates, which is a SQLAlchemy 1.4 thing (https://docs.sqlalchemy.org/en/14/orm/session_basics.html#update-and-delete-with-arbitrary-where-clause see 2.0 style, Session.execute()).
What I did:
The underlying engine and session is configured as the following: https://github.com/silenius/amnesia/blob/sqlalchemy_1_4/amnesia/db/__init__.py
My view statement is https://github.com/silenius/amnesia/blob/sqlalchemy_1_4/amnesia/modules/content/views/move.py#L25-L41
which call https://github.com/silenius/amnesia/blob/sqlalchemy_1_4/amnesia/modules/content/resources.py#L122-L166 under the hood.
What I expect to happen:
transaction gets commited
What actually happened:
It looks like doing an UPDATE at the ORM layer does not make the transaction dirty and thus it's always rolled back
What version of Python and Zope/Addons I am using:
This is with Python 3.7.9 running on FreeBSD 13 with a PostgreSQL database and:
pyramid-retry==2.0
pyramid-tm==2.4
pyramid==2.0
psycopg2==2.8.5
zope.sqlalchemy==1.4
SQLAlchemy==1.4.20
transaction==3.0.1
I also tried with #66 but it doesn't make any difference
Hello,
I'm upgrading an application which is using Pyramid and thus
zope.sqlalchemyfor the transaction management. It looks like there is an issue with ORM-enabled updates, which is a SQLAlchemy 1.4 thing (https://docs.sqlalchemy.org/en/14/orm/session_basics.html#update-and-delete-with-arbitrary-where-clause see 2.0 style, Session.execute()).What I did:
The underlying engine and session is configured as the following: https://github.com/silenius/amnesia/blob/sqlalchemy_1_4/amnesia/db/__init__.py
My view statement is https://github.com/silenius/amnesia/blob/sqlalchemy_1_4/amnesia/modules/content/views/move.py#L25-L41
which call https://github.com/silenius/amnesia/blob/sqlalchemy_1_4/amnesia/modules/content/resources.py#L122-L166 under the hood.
What I expect to happen:
transaction gets commited
What actually happened:
It looks like doing an UPDATE at the ORM layer does not make the transaction dirty and thus it's always rolled back
What version of Python and Zope/Addons I am using:
This is with Python 3.7.9 running on FreeBSD 13 with a PostgreSQL database and:
I also tried with #66 but it doesn't make any difference