From c12d4c0755eb5b31aa374a711eb093a1cde2ba46 Mon Sep 17 00:00:00 2001 From: Luke Mino-Altherr Date: Sat, 14 Mar 2026 22:17:27 -0400 Subject: [PATCH] Add index on asset_references.preview_id for FK cascade performance Amp-Thread-ID: https://ampcode.com/threads/T-019cef45-a4d2-7548-86d2-d46bcd3db419 Co-authored-by: Amp --- alembic_db/versions/0003_add_metadata_job_id.py | 4 ++++ app/assets/database/models.py | 1 + 2 files changed, 5 insertions(+) diff --git a/alembic_db/versions/0003_add_metadata_job_id.py b/alembic_db/versions/0003_add_metadata_job_id.py index 66c0458ed..3a0e0d0cf 100644 --- a/alembic_db/versions/0003_add_metadata_job_id.py +++ b/alembic_db/versions/0003_add_metadata_job_id.py @@ -44,12 +44,16 @@ def upgrade() -> None: ["id"], ondelete="SET NULL", ) + batch_op.create_index( + "ix_asset_references_preview_id", ["preview_id"] + ) def downgrade() -> None: with op.batch_alter_table( "asset_references", naming_convention=NAMING_CONVENTION ) as batch_op: + batch_op.drop_index("ix_asset_references_preview_id") batch_op.drop_constraint( "fk_asset_references_preview_id_asset_references", type_="foreignkey" ) diff --git a/app/assets/database/models.py b/app/assets/database/models.py index c3df8d669..733e807d0 100644 --- a/app/assets/database/models.py +++ b/app/assets/database/models.py @@ -150,6 +150,7 @@ class AssetReference(Base): Index("ix_asset_references_created_at", "created_at"), Index("ix_asset_references_last_access_time", "last_access_time"), Index("ix_asset_references_deleted_at", "deleted_at"), + Index("ix_asset_references_preview_id", "preview_id"), Index("ix_asset_references_owner_name", "owner_id", "name"), CheckConstraint( "(mtime_ns IS NULL) OR (mtime_ns >= 0)", name="ck_ar_mtime_nonneg"