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)

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 scheam elements.

namespace : str, optional

Namespace (or schema name) to use for all APDB tables.

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

Methods Summary

column_dtype(felis_type) Return Pandas data type for a given Felis column type.
makeSchema(drop, mysql_engine) Create or re-create all tables.

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.

makeSchema(drop: bool = False, mysql_engine: str = 'InnoDB') → None

Create or re-create all tables.

Parameters:
drop : bool, optional

If True then drop tables before creating new ones.

mysql_engine : str, optional

MySQL engine type to use for new tables.