From c187c94e65256156d002931085879b0f9b1f0b99 Mon Sep 17 00:00:00 2001 From: Daniel Schadt Date: Sun, 8 Jun 2025 10:51:32 +0200 Subject: fix migration for old sqlite versions This should not be an issue on new-ish systems (Debian 12), but if someone is still running Debian 11 (oldstable, bullseye), it is needed. --- fietsboek/alembic/versions/20250607_2ebe1bf66430.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/fietsboek/alembic/versions/20250607_2ebe1bf66430.py b/fietsboek/alembic/versions/20250607_2ebe1bf66430.py index 055c3be..d7c811e 100644 --- a/fietsboek/alembic/versions/20250607_2ebe1bf66430.py +++ b/fietsboek/alembic/versions/20250607_2ebe1bf66430.py @@ -5,6 +5,8 @@ Revises: 4566843039d6 Create Date: 2025-06-07 23:24:33.182649 """ +import logging + import sqlalchemy as sa from alembic import op @@ -20,7 +22,16 @@ def upgrade(): if is_sqlite: op.add_column('tracks', sa.Column('transformers_text', sa.Text, nullable=True)) op.execute('UPDATE tracks SET transformers_text=transformers;') - op.drop_column('tracks', 'transformers') + try: + op.drop_column('tracks', 'transformers') + except sa.exc.OperationalError as exc: + logging.getLogger(__name__).warning( + "Your SQLite version does not support dropping a column. " + "We're setting the content to NULL instead: %s", + exc, + ) + op.execute("UPDATE tracks SET transformers = NULL;") + op.alter_column("tracks", "transformers", new_column_name="transformers_old_delete_this_column") op.alter_column('tracks', 'transformers_text', new_column_name='transformers') else: op.alter_column('tracks', 'transformers', type_=sa.Text) -- cgit v1.2.3