Tutorial
Modules exported by this package:
-
make_versioned
: This is the public API function of SQLAlchemy-History for making certain mappers and sessions versioned. -
remove_versioning
: Remove the versioning from given mapper / session and manager.
make_versioned(mapper=sa.orm.Mapper, session=sa.orm.session.Session, manager=versioning_manager, plugins=None, options=None, user_cls='User')
This is the public API function of SQLAlchemy-History for making certain mappers and sessions versioned. By default this applies to all mappers and all sessions.
Examples
>>> make_versioned(user_cls=None, options={'table_name': '%_tracker'})
None
Parameters: |
|
---|
Returns: |
|
---|
sqlalchemy_history/__init__.py
def make_versioned(
mapper=sa.orm.Mapper,
session=sa.orm.session.Session,
manager=versioning_manager,
plugins=None,
options=None,
user_cls="User",
):
"""This is the public API function of SQLAlchemy-History for making certain mappers and sessions
versioned.
By default this applies to all mappers and all sessions.
**Examples**
>>> make_versioned(user_cls=None, options={'table_name': '%_tracker'})
None
:param mapper: SQLAlchemy mapper to apply the versioning to. (Default value = sa.orm.Mapper)
:type mapper: sa.orm.Mapper
:param session: SQLAlchemy session to apply the versioning to. By default this is
sa.orm.session.Session
meaning it applies to all Session subclasses.
:param manager: SQLAlchemy-History versioning manager. (Default value = versioning_manager)
:type manager: VersioningManager
:param plugins: Plugins to pass for versioning manager. (Default value = None)
:param options: A dictionary of VersioningManager options. (Default value = None)
:type options: dict
:param user_cls: User class which the Transaction class should have relationship to.
This can either be a class or string name of a class for lazy
evaluation. (Default value = "User")
:returns: None
:rtype: NoneType
"""
if plugins is not None:
manager.plugins = plugins
if options is not None:
manager.options.update(options)
manager.user_cls = user_cls
manager.apply_class_configuration_listeners(mapper)
manager.track_operations(mapper)
manager.track_session(session)
sa.event.listen(sa.engine.Engine, "before_cursor_execute", manager.track_sql_operations)
sa.event.listen(sa.engine.Engine, "rollback", manager.clear_connection)
sa.event.listen(
sa.engine.Engine,
"set_connection_execution_options",
manager.track_cloned_connections,
)
remove_versioning(mapper=sa.orm.Mapper, session=sa.orm.session.Session, manager=versioning_manager)
Remove the versioning from given mapper / session and manager.
Examples
>>> remove_versioning()
None
Parameters: |
|
---|
Returns: |
|
---|
sqlalchemy_history/__init__.py
def remove_versioning(mapper=sa.orm.Mapper, session=sa.orm.session.Session, manager=versioning_manager):
"""Remove the versioning from given mapper / session and manager.
**Examples**
>>> remove_versioning()
None
:param mapper: SQLAlchemy mapper to remove the versioning from. (Default value = sa.orm.Mapper)
:type mapper: sa.orm.Mapper
:param session: SQLAlchemy session to remove the versioning from. By default this is
sa.orm.session.Session meaning it applies to all sessions.
(Default value = sa.orm.session.Session)
:param manager: SQLAlchemy-History versioning manager. (Default value = versioning_manager)
:type manager: VersioningManager
:returns: None
:rtype: NoneType
"""
manager.reset()
manager.remove_class_configuration_listeners(mapper)
manager.remove_operations_tracking(mapper)
manager.remove_session_tracking(session)
sa.event.remove(sa.engine.Engine, "before_cursor_execute", manager.track_sql_operations)
sa.event.remove(sa.engine.Engine, "rollback", manager.clear_connection)
sa.event.remove(
sa.engine.Engine,
"set_connection_execution_options",
manager.track_cloned_connections,
)