Make origin_app migration idempotent

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
giles
2026-02-22 20:59:19 +00:00
parent 86ccfd25c5
commit 0e89dbee55

View File

@@ -6,6 +6,7 @@ Create Date: 2026-02-22
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy import inspect as sa_inspect
revision = "o5m3j9k1l2"
down_revision = "n4l2i8j0k1"
@@ -14,11 +15,19 @@ depends_on = None
def upgrade() -> None:
op.add_column(
"ap_activities",
sa.Column("origin_app", sa.String(64), nullable=True),
conn = op.get_bind()
inspector = sa_inspect(conn)
columns = [c["name"] for c in inspector.get_columns("ap_activities")]
if "origin_app" not in columns:
op.add_column(
"ap_activities",
sa.Column("origin_app", sa.String(64), nullable=True),
)
# Index is idempotent with if_not_exists
op.create_index(
"ix_ap_activity_origin_app", "ap_activities", ["origin_app"],
if_not_exists=True,
)
op.create_index("ix_ap_activity_origin_app", "ap_activities", ["origin_app"])
def downgrade() -> None: