lsst.dax.apdb g06e71c497f+582521a11f
|
Public Member Functions | |
__init__ (self, sqlalchemy.engine.Engine engine, str dia_object_index, str htm_index_column, str schema_file, str schema_name="ApdbSchema", str prefix="", str|None namespace=None, bool use_insert_id=False) | |
bool | empty (self) |
None | makeSchema (self, bool drop=False) |
Table | get_table (self, ApdbTables|ExtraTables table_enum) |
list[Column] | get_apdb_columns (self, ApdbTables|ExtraTables table_enum) |
bool | has_insert_id (self) |
![]() | |
type|str | column_dtype (self, type[felis.types.FelisType] felis_type) |
VersionTuple | schemaVersion (self) |
Static Public Attributes | |
tuple | pixel_id_tables = (ApdbTables.DiaObject, ApdbTables.DiaObjectLast, ApdbTables.DiaSource) |
Protected Member Functions | |
bool | _check_insert_id (self) |
Mapping[ApdbTables, Table] | _make_apdb_tables (self, str mysql_engine="InnoDB") |
Mapping[ExtraTables, Table] | _make_extra_tables (self, Mapping[ApdbTables, Table] apdb_tables, str mysql_engine="InnoDB") |
list[Column] | _tableColumns (self, ApdbTables table_name) |
list[sqlalchemy.schema.SchemaItem] | _tableIndices (self, ApdbTables table_name) |
list[Column] | _insertIdColumns (self, ExtraTables table_enum) |
list[Column] | _tablePkColumns (self, ApdbTables table_enum) |
list[sqlalchemy.schema.SchemaItem] | _insertIdIndices (self, ExtraTables table_enum, sqlalchemy.schema.Table apdb_table, sqlalchemy.schema.Table parent_table) |
type|sqlalchemy.types.TypeEngine | _getDoubleType (cls, sqlalchemy.engine.Engine engine) |
![]() | |
tuple[Mapping[ApdbTables, Table], VersionTuple|None] | _buildSchemas (cls, str schema_file, str schema_name="ApdbSchema") |
Protected Attributes | |
_engine | |
_dia_object_index | |
_htm_index_column | |
_prefix | |
_use_insert_id | |
_metadata | |
_type_map | |
_apdb_tables | |
_extra_tables | |
_has_insert_id | |
_metadata_check | |
![]() | |
_schemaVersion | |
Additional Inherited Members | |
![]() | |
tableSchemas | |
Class for management of APDB schema. Attributes ---------- objects : `sqlalchemy.Table` DiaObject table instance objects_last : `sqlalchemy.Table` DiaObjectLast table instance, may be None sources : `sqlalchemy.Table` DiaSource table instance forcedSources : `sqlalchemy.Table` DiaForcedSource table instance has_insert_id : `bool` If true then schema has tables for insert ID tracking. Parameters ---------- engine : `sqlalchemy.engine.Engine` SQLAlchemy engine instance dia_object_index : `str` Indexing mode for DiaObject table, see `ApdbSqlConfig.dia_object_index` for details. htm_index_column : `str` Name of a HTM index column for DiaObject and DiaSource tables. schema_file : `str` Name of the YAML schema file. schema_name : `str`, optional Name of the schema in YAML files. prefix : `str`, optional Prefix to add to all schema elements. namespace : `str`, optional Namespace (or schema name) to use for all APDB tables. use_insert_id : `bool`, optional
lsst.dax.apdb.apdbSqlSchema.ApdbSqlSchema.__init__ | ( | self, | |
sqlalchemy.engine.Engine | engine, | ||
str | dia_object_index, | ||
str | htm_index_column, | ||
str | schema_file, | ||
str | schema_name = "ApdbSchema", | ||
str | prefix = "", | ||
str | None | namespace = None, | ||
bool | use_insert_id = False ) |
Reimplemented from lsst.dax.apdb.apdbSchema.ApdbSchema.
|
protected |
Check whether database has tables for tracking insert IDs.
|
protected |
DOUBLE type is database-specific, select one based on dialect. Parameters ---------- engine : `sqlalchemy.engine.Engine` Database engine. Returns ------- type_object : `object` Database-specific type definition.
|
protected |
Return list of columns for insert ID tables.
|
protected |
Return set of constraints/indices for insert ID tables.
|
protected |
Generate schema for regular tables. Parameters ---------- mysql_engine : `str`, optional MySQL engine type to use for new tables.
|
protected |
Generate schema for insert ID tables.
|
protected |
Return set of columns in a table Parameters ---------- table_name : `ApdbTables` Name of the table. Returns ------- column_defs : `list` List of `Column` objects.
|
protected |
Return set of constraints/indices in a table Parameters ---------- table_name : `ApdbTables` Name of the table. info : `dict` Additional options passed to SQLAlchemy index constructor. Returns ------- index_defs : `list` List of SQLAlchemy index/constraint objects.
|
protected |
Return a list of columns for table PK.
bool lsst.dax.apdb.apdbSqlSchema.ApdbSqlSchema.empty | ( | self | ) |
Return True if database schema is empty. Returns ------- empty : `bool` `True` if none of the required APDB tables exist in the database, `False` if all required tables exist. Raises ------ InconsistentSchemaError Raised when some of the required tables exist but not all.
list[Column] lsst.dax.apdb.apdbSqlSchema.ApdbSqlSchema.get_apdb_columns | ( | self, | |
ApdbTables | ExtraTables | table_enum ) |
Return list of columns defined for a table in APDB schema. Returned list excludes columns that are implementation-specific, e.g. ``pixelId`` column is not include in the returned list. Parameters ---------- table_enum : `ApdbTables` or `ExtraTables` Type of table. Returns ------- table : `list` [`sqlalchemy.schema.Column`] Table instance. Raises ------ ValueError Raised if ``table_enum`` is not valid for this database.
Table lsst.dax.apdb.apdbSqlSchema.ApdbSqlSchema.get_table | ( | self, | |
ApdbTables | ExtraTables | table_enum ) |
Return SQLAlchemy table instance for a specified table type/enum. Parameters ---------- table_enum : `ApdbTables` or `ExtraTables` Type of table to return. Returns ------- table : `sqlalchemy.schema.Table` Table instance. Raises ------ ValueError Raised if ``table_enum`` is not valid for this database.
bool lsst.dax.apdb.apdbSqlSchema.ApdbSqlSchema.has_insert_id | ( | self | ) |
Whether insert ID tables are to be used (`bool`).
None lsst.dax.apdb.apdbSqlSchema.ApdbSqlSchema.makeSchema | ( | self, | |
bool | drop = False ) |
Create or re-create all tables. Parameters ---------- drop : `bool`, optional If True then drop tables before creating new ones.