group_id = db.Column(db.Integer) subject = db.Column(db.Text) coverage = db.Column(db.Text) geolocation = db.Column(db.Text) head_id = db.Column(db.Integer) timestamp = db.Column(db.DateTime, nullable=False, server_default=db.FetchedValue()) assignee_id = db.Column(db.Integer) doc = db.relationship('Doc', primaryjoin='DocAudit.doc_id == Doc.doc_id', backref='doc_audits') t_change_tree = db.Table( 'change_tree', db.Column('parent_id', db.ForeignKey('public.change.audit_id'), primary_key=True, nullable=False), db.Column('child_id', db.ForeignKey('public.change.audit_id'), primary_key=True, nullable=False), db.CheckConstraint('parent_id <> child_id'), schema='public' ) class Change(Audit): __tablename__ = 'change' __table_args__ = {'schema': 'public'} audit_id = db.Column(db.ForeignKey('public.audit.audit_id'), primary_key=True) user_id = db.Column(db.ForeignKey('public.user.user_id'), nullable=False) action = db.Column(db.String(16), nullable=False) seq = db.Column(db.Integer, nullable=False) procedure = db.Column(db.String(1), nullable=False) date_audit = db.Column(db.DateTime, nullable=False, server_default=db.FetchedValue()) date_active = db.Column(db.DateTime, nullable=False, server_default=db.FetchedValue())
def flask_sqlalchemy_mappings(db: SQLAlchemy): metadata = db.metadata environment_mapping = db.Table( 'datacenter_environment', metadata, db.Column('id', db.Integer, primary_key=True, autoincrement=True), db.Column('name', db.String(128), unique=True)) zone_mapping = db.Table( 'zone', metadata, db.Column('id', db.Integer, primary_key=True, autoincrement=True), db.Column('name', db.String(128), unique=True), db.Column('env_id', db.Integer, db.ForeignKey('datacenter_environment.id'))) firewall_mapping = db.Table( 'firewall', metadata, db.Column('id', db.Integer, primary_key=True, autoincrement=True), db.Column('uuid', db.String(128), unique=True), db.Column('name', db.String(128)), db.Column('access_layer', db.String(128))) zone_connection_mapping = db.Table( 'zone_connection', metadata, db.Column('id', db.Integer, primary_key=True), db.Column('source_id', db.Integer, db.ForeignKey('zone.id')), db.Column('destination_id', db.Integer, db.ForeignKey('zone.id')), db.Column('firewall_id', db.Integer, db.ForeignKey('firewall.id')), db.Column('criticality', db.Integer), db.Column('uuid', db.String(128), index=True, unique=True), db.CheckConstraint('source_id != destination_id')) allowed_ports_mapping = db.Table( 'allowed_ports', metadata, db.Column('id', db.Integer, primary_key=True, autoincrement=True), db.Column('connection_id', db.Integer, db.ForeignKey('zone_connection.id')), db.Column('port', db.Integer)) db.mapper(EnvironmentModel, environment_mapping) db.mapper( ZoneModel, zone_mapping, properties={ "environment": db.relationship( EnvironmentModel, primaryjoin=zone_mapping.c.env_id == environment_mapping.c.id, backref='zone') }) db.mapper( ZoneConnectionModel, zone_connection_mapping, properties={ 'allowed_ports': db.relationship(AllowedPortModel, primaryjoin=zone_connection_mapping.c.id == allowed_ports_mapping.c.connection_id, backref='zone_connection'), 'source_zone': db.relationship(ZoneModel, primaryjoin=zone_connection_mapping.c.source_id == zone_mapping.c.id), 'destination_zone': db.relationship( ZoneModel, primaryjoin=zone_connection_mapping.c.destination_id == zone_mapping.c.id), 'firewall': db.relationship(FirewallModel, primaryjoin=firewall_mapping.c.id == zone_connection_mapping.c.firewall_id) }) db.mapper(FirewallModel, firewall_mapping) db.mapper(AllowedPortModel, allowed_ports_mapping)
from flask_sqlalchemy import SQLAlchemy # Initialize database. db = SQLAlchemy() # This is a postgis built-in table that we need to define, or else Alembic will try # to remove it during every database migration. spatial_ref_sys = db.Table( "spatial_ref_sys", db.Column("srid", db.INTEGER(), autoincrement=False, nullable=False), db.Column("auth_name", db.VARCHAR(length=256), autoincrement=False, nullable=True), db.Column("auth_srid", db.INTEGER(), autoincrement=False, nullable=True), db.Column("srtext", db.VARCHAR(length=2048), autoincrement=False, nullable=True), db.Column("proj4text", db.VARCHAR(length=2048), autoincrement=False, nullable=True), db.CheckConstraint("(srid > 0) AND (srid <= 998999)", name="spatial_ref_sys_srid_check"), db.PrimaryKeyConstraint("srid", name="spatial_ref_sys_pkey"), )