From a8fba46040ab7f2903eee1d5ca26715e6e94d09b Mon Sep 17 00:00:00 2001 From: huanghuoguoguo <1051233107@qq.com> Date: Mon, 20 Apr 2026 23:43:48 +0800 Subject: [PATCH] fix(alembic): check if rerank_models table exists before creating Migration 0003 failed when rerank_models table already exists from create_all(). Add table existence check to prevent duplicate creation error in CI environments with cached database. --- .../versions/0003_add_rerank_models.py | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/langbot/pkg/persistence/alembic/versions/0003_add_rerank_models.py b/src/langbot/pkg/persistence/alembic/versions/0003_add_rerank_models.py index 78fb7ce5..6070ddc5 100644 --- a/src/langbot/pkg/persistence/alembic/versions/0003_add_rerank_models.py +++ b/src/langbot/pkg/persistence/alembic/versions/0003_add_rerank_models.py @@ -15,16 +15,20 @@ depends_on = None def upgrade() -> None: - op.create_table( - 'rerank_models', - sa.Column('uuid', sa.String(255), primary_key=True, unique=True), - sa.Column('name', sa.String(255), nullable=False), - sa.Column('provider_uuid', sa.String(255), nullable=False), - sa.Column('extra_args', sa.JSON, nullable=False, server_default='{}'), - sa.Column('prefered_ranking', sa.Integer, nullable=False, server_default='0'), - sa.Column('created_at', sa.DateTime, nullable=False, server_default=sa.func.now()), - sa.Column('updated_at', sa.DateTime, nullable=False, server_default=sa.func.now()), - ) + # Check if table already exists (may have been created by create_all()) + conn = op.get_bind() + inspector = sa.inspect(conn) + if 'rerank_models' not in inspector.get_table_names(): + op.create_table( + 'rerank_models', + sa.Column('uuid', sa.String(255), primary_key=True, unique=True), + sa.Column('name', sa.String(255), nullable=False), + sa.Column('provider_uuid', sa.String(255), nullable=False), + sa.Column('extra_args', sa.JSON, nullable=False, server_default='{}'), + sa.Column('prefered_ranking', sa.Integer, nullable=False, server_default='0'), + sa.Column('created_at', sa.DateTime, nullable=False, server_default=sa.func.now()), + sa.Column('updated_at', sa.DateTime, nullable=False, server_default=sa.func.now()), + ) def downgrade() -> None: