diff --git a/sqlalchemy_continuum/__init__.py b/sqlalchemy_continuum/__init__.py index 2352c3db..c48e7fe1 100644 --- a/sqlalchemy_continuum/__init__.py +++ b/sqlalchemy_continuum/__init__.py @@ -20,7 +20,7 @@ ) -__version__ = '1.4.2' +__version__ = '1.4.3' versioning_manager = VersioningManager() diff --git a/sqlalchemy_continuum/manager.py b/sqlalchemy_continuum/manager.py index 99ace2c1..d468e09d 100644 --- a/sqlalchemy_continuum/manager.py +++ b/sqlalchemy_continuum/manager.py @@ -182,6 +182,12 @@ def before_commit(self, session): tx_table = self.transaction_cls.__table__ + + if not self.native_transaction_id: + stmt = tx_table.insert().values(issued_at=datetime.utcnow()).returning(tx_table.c.id) + # result of fetchone() is a Tuple[int] + self.native_transaction_id = session.execute(stmt).fetchone()[0] + stmt = sa.update( table=tx_table, whereclause=(tx_table.c.id == self.native_transaction_id), @@ -189,6 +195,7 @@ def before_commit(self, session): ) session.execute(stmt) + def create_transaction_model(self): """ Create Transaction class but only if it doesn't already exist in