PpdbSchema

class lsst.dax.ppdb.PpdbSchema(engine, dia_object_index, dia_object_nightly, schema_file, extra_schema_file=None, column_map=None, afw_schemas=None, prefix='')

Bases: object

Class for management of PPDB schema.

Parameters:
engine : sqlalchemy.engine.Engine

SQLAlchemy engine instance

dia_object_index : str

Indexing mode for DiaObject table, see PpdbConfig.dia_object_index for details.

dia_object_nightly : bool

If True then create per-night DiaObject table as well.

schema_file : str

Name of the YAML schema file.

extra_schema_file : str, optional

Name of the YAML schema file with extra column definitions.

column_map : str, optional

Name of the YAML file with column mappings.

afw_schemas : dict, optional

Dictionary with table name for a key and afw.table.Schema for a value. Columns in schema will be added to standard PPDB schema (only if standard schema does not have matching column).

prefix : str, optional

Prefix to add to all scheam elements.

Attributes:
objects : sqlalchemy.Table

DiaObject table instance

objects_nightly : sqlalchemy.Table

DiaObjectNightly table instance, may be None

objects_last : sqlalchemy.Table

DiaObjectLast table instance, may be None

sources : sqlalchemy.Table

DiaSource table instance

forcedSources : sqlalchemy.Table

DiaForcedSource table instance

visits : sqlalchemy.Table

PpdbProtoVisits table instance

Methods Summary

getAfwColumns(table_name) Returns mapping of afw column names to Column definitions.
getAfwSchema(table_name[, columns]) Return afw schema for given table.
getColumnMap(table_name) Returns mapping of column names to Column definitions.
makeSchema([drop, mysql_engine, …]) Create or re-create all tables.

Methods Documentation

getAfwColumns(table_name)

Returns mapping of afw column names to Column definitions.

Parameters:
table_name : str

One of known PPDB table names.

Returns:
column_map : dict

Mapping of afw column names to ColumnDef instances.

getAfwSchema(table_name, columns=None)

Return afw schema for given table.

Parameters:
table_name : str

One of known PPDB table names.

columns : list of str, optional

Include only given table columns in schema, by default all columns are included.

Returns:
schema : lsst.afw.table.Schema
column_map : dict

Mapping of the table/result column names into schema key.

getColumnMap(table_name)

Returns mapping of column names to Column definitions.

Parameters:
table_name : str

One of known PPDB table names.

Returns:
column_map : dict

Mapping of column names to ColumnDef instances.

makeSchema(drop=False, mysql_engine='InnoDB', oracle_tablespace=None, oracle_iot=False)

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.

oracle_tablespace : str, optional

Name of Oracle tablespace, only useful with oracle

oracle_iot : bool, optional

Make Index-organized DiaObjectLast table.