"""Official record import fields and run journal.""" from alembic import op import sqlalchemy as sa revision = "0002" down_revision = "0001" branch_labels = None depends_on = None def upgrade() -> None: status = sa.Enum("running", "success", "partial", "failed", name="importstatus") op.add_column("catch_report", sa.Column("source_url", sa.Text())) op.add_column("catch_report", sa.Column("source_external_id", sa.String(64))) op.add_column("catch_report", sa.Column("raw_payload", sa.JSON())) op.create_unique_constraint("uq_catch_report_source_external_id", "catch_report", ["source_external_id"]) op.create_table( "official_record_import", sa.Column("id", sa.Uuid(), primary_key=True), sa.Column("started_at", sa.DateTime(timezone=True), nullable=False), sa.Column("finished_at", sa.DateTime(timezone=True)), sa.Column("status", status, nullable=False), sa.Column("source_url", sa.Text(), nullable=False), sa.Column("rows_seen", sa.Integer(), nullable=False), sa.Column("rows_created", sa.Integer(), nullable=False), sa.Column("rows_updated", sa.Integer(), nullable=False), sa.Column("error_summary", sa.Text()), ) def downgrade() -> None: op.drop_table("official_record_import") op.drop_constraint("uq_catch_report_source_external_id", "catch_report", type_="unique") op.drop_column("catch_report", "raw_payload") op.drop_column("catch_report", "source_external_id") op.drop_column("catch_report", "source_url") sa.Enum(name="importstatus").drop(op.get_bind(), checkfirst=True)