Fix migrations 004-006: add column existence checks to prevent duplicate column errors

This commit is contained in:
Koncept Kit
2026-01-05 11:50:26 +07:00
parent 9266521bf1
commit df789612e8
3 changed files with 62 additions and 26 deletions

View File

@@ -22,16 +22,26 @@ depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
"""Add file_size_bytes column to document tables"""
"""Add file_size_bytes column to document tables (skip if already exists)"""
from sqlalchemy import inspect
# Add to newsletter_archives
op.add_column('newsletter_archives', sa.Column('file_size_bytes', sa.Integer(), nullable=True))
conn = op.get_bind()
inspector = inspect(conn)
# Add to financial_reports
op.add_column('financial_reports', sa.Column('file_size_bytes', sa.Integer(), nullable=True))
# Add to newsletter_archives if missing
existing_columns = {col['name'] for col in inspector.get_columns('newsletter_archives')}
if 'file_size_bytes' not in existing_columns:
op.add_column('newsletter_archives', sa.Column('file_size_bytes', sa.Integer(), nullable=True))
# Add to bylaws_documents
op.add_column('bylaws_documents', sa.Column('file_size_bytes', sa.Integer(), nullable=True))
# Add to financial_reports if missing
existing_columns = {col['name'] for col in inspector.get_columns('financial_reports')}
if 'file_size_bytes' not in existing_columns:
op.add_column('financial_reports', sa.Column('file_size_bytes', sa.Integer(), nullable=True))
# Add to bylaws_documents if missing
existing_columns = {col['name'] for col in inspector.get_columns('bylaws_documents')}
if 'file_size_bytes' not in existing_columns:
op.add_column('bylaws_documents', sa.Column('file_size_bytes', sa.Integer(), nullable=True))
def downgrade() -> None: