lsst.dax.apdb g9290983e33+ffdc83c6f7
 
Loading...
Searching...
No Matches
lsst.dax.apdb.sql.modelToSql.ModelToSql Class Reference

Public Member Functions

 __init__ (self, sqlalchemy.schema.MetaData metadata, str prefix="")
 
Mapping[str, sqlalchemy.schema.Table] make_tables (self, Iterable[schema_model.Table] tables)
 

Protected Member Functions

list[sqlalchemy.schema.Column] _table_columns (self, schema_model.Table table)
 
list[sqlalchemy.schema.SchemaItem] _table_constraints (self, schema_model.Table table, Mapping[str, sqlalchemy.schema.Table] table_map)
 

Static Protected Member Functions

list[schema_model.Table_topo_sort (Iterable[schema_model.Table] table_iter)
 

Protected Attributes

 _metadata = metadata
 
 _prefix = prefix
 
dict _type_map
 

Detailed Description

Class which implements schema model conversion to SQLAlchemy format.

Parameters
----------
metadata : `sqlalchemy.schema.MetaData`
    Metadata object for created tables.
prefix : `str`, optional
    Prefix to add to all schema elements.

Member Function Documentation

◆ _table_columns()

list[sqlalchemy.schema.Column] lsst.dax.apdb.sql.modelToSql.ModelToSql._table_columns ( self,
schema_model.Table table )
protected
Return set of columns in a table

Parameters
----------
table : `schema_model.Table`
    Table model.

Returns
-------
column_defs : `list` [`sqlalchemy.schema.Column`]
    List of columns.

◆ _table_constraints()

list[sqlalchemy.schema.SchemaItem] lsst.dax.apdb.sql.modelToSql.ModelToSql._table_constraints ( self,
schema_model.Table table,
Mapping[str, sqlalchemy.schema.Table] table_map )
protected
Return set of constraints/indices in a table.

Parameters
----------
table : `schema_model.Table`
    Table model.
table_map : `~collections.abc.Mapping`
    MApping of table ID to sqlalchemy table definition for tables
    that already exist, this must include all tables referenced by
    foreign keys in ``table``.

Returns
-------
constraints : `list` [`sqlalchemy.schema.SchemaItem`]
    List of SQLAlchemy index/constraint objects.

◆ _topo_sort()

list[schema_model.Table] lsst.dax.apdb.sql.modelToSql.ModelToSql._topo_sort ( Iterable[schema_model.Table] table_iter)
staticprotected
Toplogical sorting of tables.

◆ make_tables()

Mapping[str, sqlalchemy.schema.Table] lsst.dax.apdb.sql.modelToSql.ModelToSql.make_tables ( self,
Iterable[schema_model.Table] tables )
Generate sqlalchemy table schema from the list of modedls.

Parameters
----------
tables : `~collections.abc.Iterable` [`schema_model.Table`]
    List of table models.

Returns
-------
tables : `~collections.abc.Mapping` [`str`, `sqlalchemy.schema.Table`]
    SQLAlchemy table definitions indexed by identifier of the table
    model.

Member Data Documentation

◆ _type_map

dict lsst.dax.apdb.sql.modelToSql.ModelToSql._type_map
protected
Initial value:
= {
felis.datamodel.DataType.double: sqlalchemy.types.Double,
felis.datamodel.DataType.float: sqlalchemy.types.REAL,
felis.datamodel.DataType.timestamp: sqlalchemy.types.TIMESTAMP,
felis.datamodel.DataType.long: sqlalchemy.types.BigInteger,
felis.datamodel.DataType.int: sqlalchemy.types.Integer,
felis.datamodel.DataType.short: sqlalchemy.types.SmallInteger,
felis.datamodel.DataType.byte: sqlalchemy.types.SmallInteger, # Byte types are not very portable
felis.datamodel.DataType.binary: sqlalchemy.types.LargeBinary,
felis.datamodel.DataType.text: sqlalchemy.types.Text,
felis.datamodel.DataType.string: sqlalchemy.types.VARCHAR,
felis.datamodel.DataType.char: sqlalchemy.types.CHAR,
felis.datamodel.DataType.unicode: sqlalchemy.types.NVARCHAR,
felis.datamodel.DataType.boolean: sqlalchemy.types.Boolean,
schema_model.ExtraDataTypes.UUID: GUID,
}

The documentation for this class was generated from the following file: