module: pyrseas.dbobject.constraint

The constraint module defines six classes: Constraint derived from DbSchemaObject, classes CheckConstraint, PrimaryKey, ForeignKey and UniqueConstraint derived from Constraint, and ConstraintDict derived from DbObjectDict.


Class Constraint is derived from ~pyrseas.dbobject.DbSchemaObject and represents a constraint on a database table. Its keylist attributes are the schema name, the table name and the constraint name.

autoclass: Constraint

automethod: Constraint.key_columns

automethod: Constraint.add

automethod: Constraint.drop

automethod: Constraint.comment

Check Constraint

CheckConstraint is derived from Constraint and represents a CHECK constraint.

autoclass: CheckConstraint

automethod: CheckConstraint.to_map

automethod: CheckConstraint.add

automethod: CheckConstraint.diff_map

Primary Key

PrimaryKey is derived from Constraint and represents a primary key constraint.

autoclass: PrimaryKey

automethod: PrimaryKey.to_map

automethod: PrimaryKey.diff_map

Foreign Key

ForeignKey is derived from Constraint and represents a foreign key constraint.

The following shows a foreign key segment of a map returned by to_map and expected as argument by ConstraintDict.diff_map exemplifying various possibilities:

    'columns': ['c2', 'c3'],
    'on_delete': 'restrict',
    'on_update': 'set null',
        {'columns': ['pc2', 'pc1'], 'schema': 's1', 'table': 't2'}
autoclass: ForeignKey

automethod: ForeignKey.ref_columns

automethod: ForeignKey.to_map

automethod: ForeignKey.add

automethod: ForeignKey.diff_map

Unique Constraint

UniqueConstraint is derived from Constraint and represents a UNIQUE, non-primary key constraint.

autoclass: UniqueConstraint

automethod: UniqueConstraint.to_map

automethod: UniqueConstraint.diff_map

Constraint Dictionary

Class ConstraintDict is a dictionary derived from ~pyrseas.dbobject.DbObjectDict and represents the collection of constraints in a database.

autoclass: ConstraintDict

automethod: ConstraintDict.from_map

automethod: ConstraintDict.diff_map