API Docs

Database management for Invenio.

class invenio_db.ext.InvenioDB(app=None, **kwargs)[source]

Invenio database extension.

Extension initialization.

init_app(app, **kwargs)[source]

Initialize application object.

init_db(app, entry_point_group='invenio_db.models', **kwargs)[source]

Initialize Flask-SQLAlchemy extension.

init_versioning(app, database, versioning_manager=None)[source]

Initialize the versioning support using SQLAlchemy-Continuum.

Shared database object for Invenio.

invenio_db.shared.NAMING_CONVENTION = {'ck': 'ck_%(table_name)s_%(constraint_name)s', 'fk': 'fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s', 'ix': 'ix_%(column_0_label)s', 'pk': 'pk_%(table_name)s', 'uq': 'uq_%(table_name)s_%(column_0_name)s'}

Configuration for constraint naming conventions.

class invenio_db.shared.SQLAlchemy(app=None, use_native_unicode=True, session_options=None, metadata=None, query_class=<class 'flask_sqlalchemy.BaseQuery'>, model_class=<class 'flask_sqlalchemy.model.Model'>, engine_options=None)[source]

Implement or overide extension methods.

apply_driver_hacks(app, info, options)[source]

Call before engine creation.

invenio_db.shared.db = <SQLAlchemy engine=None>

Shared database instance using Flask-SQLAlchemy extension.

This object is initialized during initialization of InvenioDB extenstion that takes care about loading all entrypoints from key invenio_db.models.

invenio_db.shared.do_sqlite_begin(dbapi_connection)[source]

Ensure SQLite transaction are started properly.

For further details see “Foreign key support” sections on https://docs.sqlalchemy.org/en/rel_1_0/dialects/sqlite.html#pysqlite-serializable # noqa

invenio_db.shared.do_sqlite_connect(dbapi_connection, connection_record)[source]

Ensure SQLite checks foreign key constraints.

For further details see “Foreign key support” sections on https://docs.sqlalchemy.org/en/latest/dialects/sqlite.html#foreign-key-support

invenio_db.shared.metadata = MetaData(bind=None)

Default database metadata object holding associated schema constructs.

Click command-line interface for database management.

invenio_db.cli.abort_if_false(ctx, param, value)[source]

Abort command is value is False.