# HG changeset patch # User Thierry Florac # Date 1523520368 -7200 # Node ID 3881fc92a30a19e0af470a123f1ebc13488bc151 # Parent e6dcf3ca56d266382672965aa96fd8751004c172# Parent aedab26ef6905ca3fd6387cb9279be12c7078eb0 Merge branche doc-dc diff -r e6dcf3ca56d2 -r 3881fc92a30a src/pyams_alchemy/__init__.py --- a/src/pyams_alchemy/__init__.py Wed Apr 11 10:52:14 2018 +0200 +++ b/src/pyams_alchemy/__init__.py Thu Apr 12 10:06:08 2018 +0200 @@ -10,6 +10,35 @@ # FOR A PARTICULAR PURPOSE. # +""" +PyAMS SQLAlchemy integration +============================ + +*pyams_alchemy* package is a small package which can be used to make SQLAlchemy integration more simple. + +The main goal of *pyams_alchemy* package is to define the :class:`pyams_alchemy.engine.AlchemyEngineUtility` class: +this class can be stored persistently into PyAMS local site manager (see :ref:`site`) to store settings of an +SQLAlchemy engine; on user request, the :func:`pyams_alchemy.engine.get_user_session` function can be used to get +access to a new SQLAlchemy engine session matching these settings which will to be bound to current Pyramid's +transaction. + + +Dynamic schema names +++++++++++++++++++++ + +Some times you may have to be able to setup, for a given table, a schema name which is not static but can be dynamic +through a configuration option. + +This can be done easily with the help of the :class:`pyams_alchemy.mixin.DynamicSchemaMixin` which you can inherit from +in any SQLAlchemy table subclass. + +When this is done, the schema name can be defined into Pyramid's configuration file into a setting which is called +*pyams_alchemy:{module_name}.{class_name}.schema*; for example like in +*pyams_alchemy:pyams_content.package.TableName.schema*. If not specified, the table's schema name can be defined in a +classic *__schema__* table's attribute. + +""" + __docformat__ = 'restructuredtext'