From 4678022c7b24d748cdd2580c8554f8dd8893d2e6 Mon Sep 17 00:00:00 2001 From: Kobe Date: Tue, 24 Jun 2025 14:16:15 +0200 Subject: [PATCH] Update c94c2b2b9f2e_add_version_tracking_fields_to_instances.py --- ...dd_version_tracking_fields_to_instances.py | 35 ++++++++++++++----- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/migrations/versions/c94c2b2b9f2e_add_version_tracking_fields_to_instances.py b/migrations/versions/c94c2b2b9f2e_add_version_tracking_fields_to_instances.py index e6450f6..cc135c6 100644 --- a/migrations/versions/c94c2b2b9f2e_add_version_tracking_fields_to_instances.py +++ b/migrations/versions/c94c2b2b9f2e_add_version_tracking_fields_to_instances.py @@ -20,11 +20,21 @@ def upgrade(): # ### commands auto generated by Alembic - please adjust! ### op.drop_table('email_template') op.drop_table('notification') + + # Check if columns already exist before adding them + connection = op.get_bind() + inspector = sa.inspect(connection) + existing_columns = [col['name'] for col in inspector.get_columns('instances')] + with op.batch_alter_table('instances', schema=None) as batch_op: - batch_op.add_column(sa.Column('deployed_version', sa.String(length=50), nullable=True)) - batch_op.add_column(sa.Column('deployed_branch', sa.String(length=100), nullable=True)) - batch_op.add_column(sa.Column('latest_version', sa.String(length=50), nullable=True)) - batch_op.add_column(sa.Column('version_checked_at', sa.DateTime(), nullable=True)) + if 'deployed_version' not in existing_columns: + batch_op.add_column(sa.Column('deployed_version', sa.String(length=50), nullable=True)) + if 'deployed_branch' not in existing_columns: + batch_op.add_column(sa.Column('deployed_branch', sa.String(length=100), nullable=True)) + if 'latest_version' not in existing_columns: + batch_op.add_column(sa.Column('latest_version', sa.String(length=50), nullable=True)) + if 'version_checked_at' not in existing_columns: + batch_op.add_column(sa.Column('version_checked_at', sa.DateTime(), nullable=True)) with op.batch_alter_table('room_file', schema=None) as batch_op: batch_op.drop_constraint(batch_op.f('fk_room_file_deleted_by_user'), type_='foreignkey') @@ -37,11 +47,20 @@ def downgrade(): with op.batch_alter_table('room_file', schema=None) as batch_op: batch_op.create_foreign_key(batch_op.f('fk_room_file_deleted_by_user'), 'user', ['deleted_by'], ['id']) + # Check if columns exist before dropping them + connection = op.get_bind() + inspector = sa.inspect(connection) + existing_columns = [col['name'] for col in inspector.get_columns('instances')] + with op.batch_alter_table('instances', schema=None) as batch_op: - batch_op.drop_column('version_checked_at') - batch_op.drop_column('latest_version') - batch_op.drop_column('deployed_branch') - batch_op.drop_column('deployed_version') + if 'version_checked_at' in existing_columns: + batch_op.drop_column('version_checked_at') + if 'latest_version' in existing_columns: + batch_op.drop_column('latest_version') + if 'deployed_branch' in existing_columns: + batch_op.drop_column('deployed_branch') + if 'deployed_version' in existing_columns: + batch_op.drop_column('deployed_version') op.create_table('notification', sa.Column('id', sa.INTEGER(), autoincrement=True, nullable=False),