sqlalchemy_helpers.manager module¶
Database management.
This must remain independent from any web framework.
- class sqlalchemy_helpers.manager.DatabaseManager(uri, alembic_location, engine_args=None, base_model=None)[source]¶
Bases:
object
Helper for a SQLAlchemy and Alembic-powered database
- Parameters:
- alembic_cfg¶
the Alembic configuration object
- Type:
alembic.config.Config
- engine¶
the SQLAlchemy Engine instance
- Type:
- Session¶
the SQLAlchemy scoped session factory
- get_status()[source]¶
Get the status of the database.
- Returns:
see
DatabaseStatus
.- Return type:
DatabaseStatus member
- sync()[source]¶
Create or update the database schema.
- Returns:
see
SyncResult
.- Return type:
SyncResult member
- class sqlalchemy_helpers.manager.DatabaseStatus(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]¶
Bases:
Enum
The status of the database.
- NO_INFO = 2¶
Returned when the database couldn’t be connected to.
- UPGRADE_AVAILABLE = 3¶
Returned when the database schema can be upgraded.
- UP_TO_DATE = 1¶
Returned when the database schema is up-to-date.
- class sqlalchemy_helpers.manager.SyncResult(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]¶
Bases:
Enum
The result of a sync() call.
- ALREADY_UP_TO_DATE = 1¶
Returned when the database schema was already up-to-date.
- CREATED = 2¶
Returned when the database has been created.
- UPGRADED = 3¶
Returned when the database schema has been upgraded.
- sqlalchemy_helpers.manager.exists_in_db(bind, tablename, columnname=None)[source]¶
Check whether a table and optionally a column exist in the database.
- Parameters:
bind (sqlalchemy.engine.Engine) – the database engine or connection.
tablename (str) – the table to look for.
columnname (str, optional) – the column to look for, if any. Defaults to None.
- Returns:
Whether the database (and column) exist.
- Return type:
- sqlalchemy_helpers.manager.get_by_pk(pk, *, session, model)[source]¶
Get a model instance using its primary key.
Example:
user = get_by_pk(42, session=session, model=User)
- sqlalchemy_helpers.manager.get_one(session, model, **attrs)[source]¶
Get a model instance using filters.
Example:
user = get_one(session, User, name="foo")
- sqlalchemy_helpers.manager.get_or_create(session, model, **attrs)[source]¶
Function like Django’s
get_or_create()
method.It will return a tuple, the first argument being the instance and the second being a boolean:
True
if the instance has been created andFalse
otherwise.Example:
user, created = get_or_create(session, User, name="foo")
- sqlalchemy_helpers.manager.is_sqlite(bind)[source]¶
Check whether the database is SQLite.
- Returns:
whether the database is SQLite.
- Return type:
- sqlalchemy_helpers.manager.model_property(func)[source]¶
Add a model property to call a function that uses the database model.