From 9266521bf17c174223b3ec4823c030cfa2429bca Mon Sep 17 00:00:00 2001 From: Koncept Kit <63216427+konceptkit@users.noreply.github.com> Date: Mon, 5 Jan 2026 02:43:15 +0700 Subject: [PATCH] Fix migration 003: add column existence checks to prevent duplicate column errors --- .../003_add_user_invitation_fields.py | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/alembic/versions/003_add_user_invitation_fields.py b/alembic/versions/003_add_user_invitation_fields.py index 06a0ad2..4c91a11 100644 --- a/alembic/versions/003_add_user_invitation_fields.py +++ b/alembic/versions/003_add_user_invitation_fields.py @@ -22,11 +22,24 @@ depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: - """Add optional pre-filled information fields to user_invitations""" + """Add optional pre-filled information fields to user_invitations (skip if already exists)""" + from sqlalchemy import inspect - op.add_column('user_invitations', sa.Column('first_name', sa.String(), nullable=True)) - op.add_column('user_invitations', sa.Column('last_name', sa.String(), nullable=True)) - op.add_column('user_invitations', sa.Column('phone', sa.String(), nullable=True)) + conn = op.get_bind() + inspector = inspect(conn) + existing_columns = {col['name'] for col in inspector.get_columns('user_invitations')} + + # Add first_name if missing + if 'first_name' not in existing_columns: + op.add_column('user_invitations', sa.Column('first_name', sa.String(), nullable=True)) + + # Add last_name if missing + if 'last_name' not in existing_columns: + op.add_column('user_invitations', sa.Column('last_name', sa.String(), nullable=True)) + + # Add phone if missing + if 'phone' not in existing_columns: + op.add_column('user_invitations', sa.Column('phone', sa.String(), nullable=True)) def downgrade() -> None: