ApdbSqlSchema

class lsst.dax.apdb.ApdbSqlSchema(engine: sqlalchemy.engine.base.Engine, dia_object_index: str, htm_index_column: str, schema_file: str, schema_name: str = 'ApdbSchema', prefix: str = '', namespace: Optional[str, None] = None, use_insert_id: bool = False)

Bases: lsst.dax.apdb.ApdbSchema

Class for management of APDB schema.

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
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

Whether insert ID tables are to be used (bool).

Attributes Summary

has_insert_id Whether insert ID tables are to be used (bool).
pixel_id_tables Tables that need pixelId column for spatial indexing.

Methods Summary

column_dtype(felis_type) Return Pandas data type for a given Felis column type.
get_apdb_columns(table_enum, …) Return list of columns defined for a table in APDB schema.
get_table(table_enum, …) Return SQLAlchemy table instance for a specified table type/enum.
makeSchema(drop) Create or re-create all tables.

Attributes Documentation

has_insert_id

Whether insert ID tables are to be used (bool).

pixel_id_tables = (<ApdbTables.DiaObject: 'DiaObject'>, <ApdbTables.DiaObjectLast: 'DiaObjectLast'>, <ApdbTables.DiaSource: 'DiaSource'>)

Tables that need pixelId column for spatial indexing.

Methods Documentation

column_dtype(felis_type: Type[felis.types.FelisType]) → Union[type, str]

Return Pandas data type for a given Felis column type.

Parameters:
felis_type : type

Felis type, on of the classes defined in felis.types module.

Returns:
column_dtype : type or str

Type that can be used for columns in Pandas.

Raises:
TypeError

Raised if type is cannot be handled.

get_apdb_columns(table_enum: lsst.dax.apdb.apdbSchema.ApdbTables | lsst.dax.apdb.apdbSqlSchema.ExtraTables[lsst.dax.apdb.apdbSchema.ApdbTables, lsst.dax.apdb.apdbSqlSchema.ExtraTables]) → list

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.

get_table(table_enum: lsst.dax.apdb.apdbSchema.ApdbTables | lsst.dax.apdb.apdbSqlSchema.ExtraTables[lsst.dax.apdb.apdbSchema.ApdbTables, lsst.dax.apdb.apdbSqlSchema.ExtraTables]) → sqlalchemy.sql.schema.Table

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.

makeSchema(drop: bool = False) → None

Create or re-create all tables.

Parameters:
drop : bool, optional

If True then drop tables before creating new ones.