def upgrade()

in src/dispatch/database/revisions/tenant/versions/2022-02-22_b5d3706a1d54.py [0:0]


def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_table(
        "source_data_format",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("name", sa.String(), nullable=True),
        sa.Column("description", sa.String(), nullable=True),
        sa.Column("search_vector", sqlalchemy_utils.types.ts_vector.TSVectorType(), nullable=True),
        sa.Column("project_id", sa.Integer(), nullable=True),
        sa.ForeignKeyConstraint(["project_id"], ["project.id"], ondelete="CASCADE"),
        sa.PrimaryKeyConstraint("id"),
        sa.UniqueConstraint("name", "project_id"),
    )
    op.create_index(
        "source_data_format_search_vector_idx",
        "source_data_format",
        ["search_vector"],
        unique=False,
        postgresql_using="gin",
    )
    op.create_table(
        "source_environment",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("name", sa.String(), nullable=True),
        sa.Column("description", sa.String(), nullable=True),
        sa.Column("search_vector", sqlalchemy_utils.types.ts_vector.TSVectorType(), nullable=True),
        sa.Column("project_id", sa.Integer(), nullable=True),
        sa.ForeignKeyConstraint(["project_id"], ["project.id"], ondelete="CASCADE"),
        sa.PrimaryKeyConstraint("id"),
        sa.UniqueConstraint("name", "project_id"),
    )
    op.create_index(
        "source_environment_search_vector_idx",
        "source_environment",
        ["search_vector"],
        unique=False,
        postgresql_using="gin",
    )
    op.create_table(
        "source_status",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("name", sa.String(), nullable=True),
        sa.Column("description", sa.String(), nullable=True),
        sa.Column("search_vector", sqlalchemy_utils.types.ts_vector.TSVectorType(), nullable=True),
        sa.Column("project_id", sa.Integer(), nullable=True),
        sa.ForeignKeyConstraint(["project_id"], ["project.id"], ondelete="CASCADE"),
        sa.PrimaryKeyConstraint("id"),
        sa.UniqueConstraint("name", "project_id"),
    )
    op.create_index(
        "source_status_search_vector_idx",
        "source_status",
        ["search_vector"],
        unique=False,
        postgresql_using="gin",
    )
    op.create_table(
        "source_transport",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("name", sa.String(), nullable=True),
        sa.Column("description", sa.String(), nullable=True),
        sa.Column("search_vector", sqlalchemy_utils.types.ts_vector.TSVectorType(), nullable=True),
        sa.Column("project_id", sa.Integer(), nullable=True),
        sa.ForeignKeyConstraint(["project_id"], ["project.id"], ondelete="CASCADE"),
        sa.PrimaryKeyConstraint("id"),
        sa.UniqueConstraint("name", "project_id"),
    )
    op.create_index(
        "source_transport_search_vector_idx",
        "source_transport",
        ["search_vector"],
        unique=False,
        postgresql_using="gin",
    )
    op.create_table(
        "source_type",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("name", sa.String(), nullable=True),
        sa.Column("description", sa.String(), nullable=True),
        sa.Column("search_vector", sqlalchemy_utils.types.ts_vector.TSVectorType(), nullable=True),
        sa.Column("project_id", sa.Integer(), nullable=True),
        sa.ForeignKeyConstraint(["project_id"], ["project.id"], ondelete="CASCADE"),
        sa.PrimaryKeyConstraint("id"),
        sa.UniqueConstraint("name", "project_id"),
    )
    op.create_index(
        "source_type_search_vector_idx",
        "source_type",
        ["search_vector"],
        unique=False,
        postgresql_using="gin",
    )
    op.create_table(
        "source",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("name", sa.String(), nullable=True),
        sa.Column("description", sa.String(), nullable=True),
        sa.Column("cost", sa.Integer(), nullable=True),
        sa.Column("data_last_loaded_at", sa.DateTime(), nullable=True),
        sa.Column("daily_volume", sa.Integer(), nullable=True),
        sa.Column("aggregated", sa.Boolean(), nullable=True),
        sa.Column("retention", sa.Integer(), nullable=True),
        sa.Column("size", sa.BigInteger(), nullable=True),
        sa.Column("delay", sa.Integer(), nullable=True),
        sa.Column("environment", sa.String(), nullable=True),
        sa.Column("external_id", sa.String(), nullable=True),
        sa.Column("documentation", sa.Text(), nullable=True),
        sa.Column("sampling_rate", sa.Integer(), nullable=True),
        sa.Column("source_schema", sa.Text(), nullable=True),
        sa.Column("links", sa.JSON(), nullable=True),
        sa.Column("source_type_id", sa.Integer(), nullable=True),
        sa.Column("source_status_id", sa.Integer(), nullable=True),
        sa.Column("source_environment_id", sa.Integer(), nullable=True),
        sa.Column("source_data_format_id", sa.Integer(), nullable=True),
        sa.Column("source_transport_id", sa.Integer(), nullable=True),
        sa.Column("owner_id", sa.Integer(), nullable=True),
        sa.Column("search_vector", sqlalchemy_utils.types.ts_vector.TSVectorType(), nullable=True),
        sa.Column("project_id", sa.Integer(), nullable=True),
        sa.Column("created_at", sa.DateTime(), nullable=True),
        sa.Column("updated_at", sa.DateTime(), nullable=True),
        sa.ForeignKeyConstraint(
            ["owner_id"],
            ["service.id"],
        ),
        sa.ForeignKeyConstraint(["project_id"], ["project.id"], ondelete="CASCADE"),
        sa.ForeignKeyConstraint(
            ["source_data_format_id"],
            ["source_data_format.id"],
        ),
        sa.ForeignKeyConstraint(
            ["source_environment_id"],
            ["source_environment.id"],
        ),
        sa.ForeignKeyConstraint(
            ["source_status_id"],
            ["source_status.id"],
        ),
        sa.ForeignKeyConstraint(
            ["source_transport_id"],
            ["source_transport.id"],
        ),
        sa.ForeignKeyConstraint(
            ["source_type_id"],
            ["source_type.id"],
        ),
        sa.PrimaryKeyConstraint("id"),
        sa.UniqueConstraint("name", "project_id"),
    )
    op.create_index(
        "source_search_vector_idx",
        "source",
        ["search_vector"],
        unique=False,
        postgresql_using="gin",
    )
    op.create_table(
        "alert",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("name", sa.String(), nullable=True),
        sa.Column("description", sa.String(), nullable=True),
        sa.Column("orginator", sa.String(), nullable=True),
        sa.Column("external_link", sa.String(), nullable=True),
        sa.Column("source_id", sa.Integer(), nullable=True),
        sa.Column("search_vector", sqlalchemy_utils.types.ts_vector.TSVectorType(), nullable=True),
        sa.Column("updated_at", sa.DateTime(), nullable=True),
        sa.Column("created_at", sa.DateTime(), nullable=True),
        sa.ForeignKeyConstraint(
            ["source_id"],
            ["source.id"],
        ),
        sa.PrimaryKeyConstraint("id"),
    )
    op.create_index(
        "alert_search_vector_idx", "alert", ["search_vector"], unique=False, postgresql_using="gin"
    )
    op.create_table(
        "assoc_source_tags",
        sa.Column("source_id", sa.Integer(), nullable=False),
        sa.Column("tag_id", sa.Integer(), nullable=False),
        sa.ForeignKeyConstraint(["source_id"], ["source.id"], ondelete="CASCADE"),
        sa.ForeignKeyConstraint(["tag_id"], ["tag.id"], ondelete="CASCADE"),
        sa.PrimaryKeyConstraint("source_id", "tag_id"),
    )
    op.create_table(
        "query",
        sa.Column("id", sa.Integer(), nullable=False),
        sa.Column("name", sa.String(), nullable=True),
        sa.Column("description", sa.String(), nullable=True),
        sa.Column("text", sa.String(), nullable=True),
        sa.Column("language", sa.String(), nullable=True),
        sa.Column("source_id", sa.Integer(), nullable=True),
        sa.Column("search_vector", sqlalchemy_utils.types.ts_vector.TSVectorType(), nullable=True),
        sa.Column("project_id", sa.Integer(), nullable=True),
        sa.Column("created_at", sa.DateTime(), nullable=True),
        sa.Column("updated_at", sa.DateTime(), nullable=True),
        sa.ForeignKeyConstraint(["project_id"], ["project.id"], ondelete="CASCADE"),
        sa.ForeignKeyConstraint(
            ["source_id"],
            ["source.id"],
        ),
        sa.PrimaryKeyConstraint("id"),
    )
    op.create_index(
        "query_search_vector_idx", "query", ["search_vector"], unique=False, postgresql_using="gin"
    )
    op.create_table(
        "assoc_query_tags",
        sa.Column("query_id", sa.Integer(), nullable=False),
        sa.Column("tag_id", sa.Integer(), nullable=False),
        sa.ForeignKeyConstraint(["query_id"], ["query.id"], ondelete="CASCADE"),
        sa.ForeignKeyConstraint(["tag_id"], ["tag.id"], ondelete="CASCADE"),
        sa.PrimaryKeyConstraint("query_id", "tag_id"),
    )
    op.create_table(
        "assoc_query_incidents",
        sa.Column("query_id", sa.Integer(), nullable=False),
        sa.Column("incident_id", sa.Integer(), nullable=False),
        sa.ForeignKeyConstraint(["incident_id"], ["incident.id"], ondelete="CASCADE"),
        sa.ForeignKeyConstraint(["query_id"], ["query.id"], ondelete="CASCADE"),
        sa.PrimaryKeyConstraint("query_id", "incident_id"),
    )
    op.create_table(
        "assoc_source_incidents",
        sa.Column("source_id", sa.Integer(), nullable=False),
        sa.Column("incident_id", sa.Integer(), nullable=False),
        sa.ForeignKeyConstraint(["incident_id"], ["incident.id"], ondelete="CASCADE"),
        sa.ForeignKeyConstraint(["source_id"], ["source.id"], ondelete="CASCADE"),
        sa.PrimaryKeyConstraint("source_id", "incident_id"),
    )