fix migration version 45 | upgrade

This commit is contained in:
CREDO23 2025-12-13 21:48:54 +02:00
parent 88eb557161
commit 181df4237e

View file

@ -12,6 +12,7 @@ for efficient time-based filtering.
from collections.abc import Sequence from collections.abc import Sequence
import sqlalchemy as sa import sqlalchemy as sa
from sqlalchemy import inspect
from alembic import op from alembic import op
@ -24,6 +25,11 @@ depends_on: str | Sequence[str] | None = None
def upgrade() -> None: def upgrade() -> None:
"""Upgrade schema - Add updated_at field with index to documents.""" """Upgrade schema - Add updated_at field with index to documents."""
connection = op.get_bind()
inspector = inspect(connection)
columns = [col["name"] for col in inspector.get_columns("documents")]
if "updated_at" not in columns:
op.add_column( op.add_column(
"documents", "documents",
sa.Column("updated_at", sa.TIMESTAMP(timezone=True), nullable=True), sa.Column("updated_at", sa.TIMESTAMP(timezone=True), nullable=True),
@ -37,6 +43,10 @@ def upgrade() -> None:
def downgrade() -> None: def downgrade() -> None:
"""Downgrade schema - Remove updated_at field and index.""" """Downgrade schema - Remove updated_at field and index."""
# Use if_exists to handle cases where index wasn't created (migration modified after apply) connection = op.get_bind()
inspector = inspect(connection)
columns = [col["name"] for col in inspector.get_columns("documents")]
if "updated_at" in columns:
op.drop_index("ix_documents_updated_at", table_name="documents", if_exists=True) op.drop_index("ix_documents_updated_at", table_name="documents", if_exists=True)
op.drop_column("documents", "updated_at") op.drop_column("documents", "updated_at")