diff --git a/server/alembic/versions/2264546da1d9_simplify_alert_preferences.py b/server/alembic/versions/2264546da1d9_simplify_alert_preferences.py index f728710..6ea493a 100644 --- a/server/alembic/versions/2264546da1d9_simplify_alert_preferences.py +++ b/server/alembic/versions/2264546da1d9_simplify_alert_preferences.py @@ -20,13 +20,18 @@ def upgrade() -> None: """Upgrade schema.""" - # ### commands auto generated by Alembic - please adjust! ### - with op.batch_alter_table('user_alert_preferences', schema=None) as batch_op: - batch_op.drop_column('alert_types') - batch_op.drop_column('email_min_severity') - batch_op.drop_column('disaster_types') + # Check if columns exist before dropping them (idempotent migration) + conn = op.get_bind() + inspector = sa.inspect(conn) + columns = [col["name"] for col in inspector.get_columns("user_alert_preferences")] - # ### end Alembic commands ### + with op.batch_alter_table('user_alert_preferences', schema=None) as batch_op: + if "alert_types" in columns: + batch_op.drop_column("alert_types") + if "email_min_severity" in columns: + batch_op.drop_column("email_min_severity") + if "disaster_types" in columns: + batch_op.drop_column("disaster_types") def downgrade() -> None: