def upgrade()

in src/dispatch/database/revisions/tenant/versions/2023-02-09_8746b4e292d2.py [0:0]


def upgrade():
    # ### commands auto generated by Alembic - please adjust!

    # EntityType
    op.create_table(
        "entity_type",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("name", sa.String(), nullable=True),
        sa.Column("description", sa.String(), nullable=True),
        sa.Column("field", sa.String(), nullable=True),
        sa.Column("regular_expression", sa.String(), nullable=True),
        sa.Column("global_find", sa.Boolean(), nullable=True),
        sa.Column("enabled", sa.Boolean(), nullable=True),
        sa.Column("search_vector", TSVECTOR, nullable=True),
        sa.Column("project_id", sa.Integer(), nullable=True),
        sa.Column("updated_at", sa.DateTime(), nullable=True),
        sa.Column("created_at", sa.DateTime(), nullable=True),
        sa.ForeignKeyConstraint(["project_id"], ["project.id"], ondelete="CASCADE"),
        sa.PrimaryKeyConstraint("id"),
        sa.UniqueConstraint("name", "project_id"),
    )
    op.create_table(
        "assoc_signal_entity_types",
        sa.Column("signal_id", sa.Integer(), nullable=False),
        sa.Column("entity_type_id", sa.Integer(), nullable=False),
        sa.ForeignKeyConstraint(["signal_id"], ["signal.id"], ondelete="CASCADE"),
        sa.ForeignKeyConstraint(["entity_type_id"], ["entity_type.id"], ondelete="CASCADE"),
        sa.PrimaryKeyConstraint("signal_id", "entity_type_id"),
    )
    op.create_index(
        "entity_type_search_vector_idx",
        "entity_type",
        ["search_vector"],
        unique=False,
        postgresql_using="gin",
    )

    # Entity
    op.create_table(
        "entity",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("name", sa.String(), nullable=True),
        sa.Column("description", sa.String(), nullable=True),
        sa.Column("value", sa.String(), nullable=True),
        sa.Column("source", sa.Boolean(), nullable=True),
        sa.Column("entity_type_id", sa.Integer(), nullable=False),
        sa.Column("search_vector", TSVECTOR, nullable=True),
        sa.Column("project_id", sa.Integer(), nullable=True),
        sa.Column("updated_at", sa.DateTime(), nullable=True),
        sa.Column("created_at", sa.DateTime(), nullable=True),
        sa.ForeignKeyConstraint(
            ["entity_type_id"],
            ["entity_type.id"],
        ),
        sa.ForeignKeyConstraint(["project_id"], ["project.id"], ondelete="CASCADE"),
        sa.PrimaryKeyConstraint("id"),
        sa.UniqueConstraint("name", "project_id"),
    )
    op.create_index(
        "ix_entity_search_vector",
        "entity",
        ["search_vector"],
        unique=False,
        postgresql_using="gin",
    )
    op.create_table(
        "assoc_signal_instance_entities",
        sa.Column("signal_instance_id", UUID(), nullable=False),
        sa.Column("entity_id", sa.Integer(), nullable=False),
        sa.ForeignKeyConstraint(["signal_instance_id"], ["signal_instance.id"], ondelete="CASCADE"),
        sa.ForeignKeyConstraint(["entity_id"], ["entity.id"], ondelete="CASCADE"),
        sa.PrimaryKeyConstraint("signal_instance_id", "entity_id"),
    )