From c01359002abbad78c8ad576f4e1a096390f4319e Mon Sep 17 00:00:00 2001 From: mwiegand Date: Wed, 6 May 2026 20:59:18 +0200 Subject: [PATCH] fix: enable batch operations in alembic for sqlite unique constraints --- l4d2web/alembic/env.py | 7 ++++++- .../versions/b2c684fddbd3_make_server_port_unique.py | 6 ++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/l4d2web/alembic/env.py b/l4d2web/alembic/env.py index 1d8f7a4..2d31b1b 100644 --- a/l4d2web/alembic/env.py +++ b/l4d2web/alembic/env.py @@ -25,6 +25,7 @@ def run_migrations_offline() -> None: target_metadata=target_metadata, literal_binds=True, dialect_opts={"paramstyle": "named"}, + render_as_batch=True ) with context.begin_transaction(): @@ -41,7 +42,11 @@ def run_migrations_online() -> None: ) with connectable.connect() as connection: - context.configure(connection=connection, target_metadata=target_metadata) + context.configure( + connection=connection, + target_metadata=target_metadata, + render_as_batch=True + ) with context.begin_transaction(): context.run_migrations() diff --git a/l4d2web/alembic/versions/b2c684fddbd3_make_server_port_unique.py b/l4d2web/alembic/versions/b2c684fddbd3_make_server_port_unique.py index 4d961f1..e647857 100644 --- a/l4d2web/alembic/versions/b2c684fddbd3_make_server_port_unique.py +++ b/l4d2web/alembic/versions/b2c684fddbd3_make_server_port_unique.py @@ -21,12 +21,14 @@ depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: """Upgrade schema.""" # ### commands auto generated by Alembic - please adjust! ### - op.create_unique_constraint(None, 'servers', ['port']) + with op.batch_alter_table('servers', schema=None) as batch_op: + batch_op.create_unique_constraint(batch_op.f('uq_servers_port'), ['port']) # ### end Alembic commands ### def downgrade() -> None: """Downgrade schema.""" # ### commands auto generated by Alembic - please adjust! ### - op.drop_constraint(None, 'servers', type_='unique') + with op.batch_alter_table('servers', schema=None) as batch_op: + batch_op.drop_constraint(batch_op.f('uq_servers_port'), type_='unique') # ### end Alembic commands ###