From 62aadfe0532d7213685eccbb688c3b8964c0fba9 Mon Sep 17 00:00:00 2001 From: BoKeum Date: Mon, 18 May 2026 17:36:42 +0900 Subject: [PATCH 1/4] fix(BA-6085): seed reads_vfolder_config_files=true for custom variant The original runtime_variants seed migration inserted rows with only name/description, and populate_fixture's ON CONFLICT DO NOTHING never overwrites the existing rows, so the install fixture's reads_vfolder_config_files=true for custom was silently dropped. Backfill the value via a new migration so custom actually scans model-definition files from the vfolder at revision-creation time. Co-Authored-By: Claude Opus 4.7 --- ...2_seed_reads_vfolder_for_custom_variant.py | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/ai/backend/manager/models/alembic/versions/0b10b2c6a972_seed_reads_vfolder_for_custom_variant.py diff --git a/src/ai/backend/manager/models/alembic/versions/0b10b2c6a972_seed_reads_vfolder_for_custom_variant.py b/src/ai/backend/manager/models/alembic/versions/0b10b2c6a972_seed_reads_vfolder_for_custom_variant.py new file mode 100644 index 00000000000..c19ea528818 --- /dev/null +++ b/src/ai/backend/manager/models/alembic/versions/0b10b2c6a972_seed_reads_vfolder_for_custom_variant.py @@ -0,0 +1,47 @@ +"""seed reads_vfolder_config_files for custom runtime variant + +The original seed migration (``9229f72fa447``) inserted runtime variants +with only ``name`` / ``description``, so ``reads_vfolder_config_files`` +took its server default of ``false`` for every row. The install fixture +sets the flag to ``true`` for the ``custom`` variant, but +``populate_fixture`` uses ``ON CONFLICT DO NOTHING`` and therefore never +overwrites the already-seeded row. Backfill the intended value here so +``custom`` actually triggers the vfolder ``model-definition.yaml`` scan +at revision-creation time. + +Revision ID: 0b10b2c6a972 +Revises: ba42cb865efe +Create Date: 2026-05-18 + +""" + +# Part of: 26.5.0 + +import sqlalchemy as sa +from alembic import op + +# revision identifiers, used by Alembic. +revision = "0b10b2c6a972" +down_revision = "ba42cb865efe" +branch_labels = None +depends_on = None + + +def upgrade() -> None: + op.execute( + sa.text( + "UPDATE runtime_variants " + "SET reads_vfolder_config_files = true " + "WHERE name = 'custom'" + ) + ) + + +def downgrade() -> None: + op.execute( + sa.text( + "UPDATE runtime_variants " + "SET reads_vfolder_config_files = false " + "WHERE name = 'custom'" + ) + ) From c86907079f3898aedd1c9cd6fe39ef7efefb1932 Mon Sep 17 00:00:00 2001 From: BoKeum Date: Mon, 18 May 2026 17:39:58 +0900 Subject: [PATCH 2/4] style(BA-6085): apply ruff format to migration Co-Authored-By: Claude Opus 4.7 --- .../0b10b2c6a972_seed_reads_vfolder_for_custom_variant.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/ai/backend/manager/models/alembic/versions/0b10b2c6a972_seed_reads_vfolder_for_custom_variant.py b/src/ai/backend/manager/models/alembic/versions/0b10b2c6a972_seed_reads_vfolder_for_custom_variant.py index c19ea528818..76b223115ba 100644 --- a/src/ai/backend/manager/models/alembic/versions/0b10b2c6a972_seed_reads_vfolder_for_custom_variant.py +++ b/src/ai/backend/manager/models/alembic/versions/0b10b2c6a972_seed_reads_vfolder_for_custom_variant.py @@ -30,9 +30,7 @@ def upgrade() -> None: op.execute( sa.text( - "UPDATE runtime_variants " - "SET reads_vfolder_config_files = true " - "WHERE name = 'custom'" + "UPDATE runtime_variants SET reads_vfolder_config_files = true WHERE name = 'custom'" ) ) @@ -40,8 +38,6 @@ def upgrade() -> None: def downgrade() -> None: op.execute( sa.text( - "UPDATE runtime_variants " - "SET reads_vfolder_config_files = false " - "WHERE name = 'custom'" + "UPDATE runtime_variants SET reads_vfolder_config_files = false WHERE name = 'custom'" ) ) From 464ea60dcfbc1165ce92e8b99e4af7c450c5121e Mon Sep 17 00:00:00 2001 From: BoKeum Date: Mon, 18 May 2026 18:00:34 +0900 Subject: [PATCH 3/4] changelog: add news fragment for PR #11661 --- changes/11661.fix.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 changes/11661.fix.md diff --git a/changes/11661.fix.md b/changes/11661.fix.md new file mode 100644 index 00000000000..70fdd357c0d --- /dev/null +++ b/changes/11661.fix.md @@ -0,0 +1 @@ +Fix custom runtime variant not reading model-definition.yaml from the model vfolder during revision creation From 4914c531bf266a0236c6f8d2bd605cd370dba37e Mon Sep 17 00:00:00 2001 From: BoKeum Date: Mon, 18 May 2026 18:15:09 +0900 Subject: [PATCH 4/4] fix(BA-6085): make migration downgrade a no-op The prior revision 7ea9f3c1b2d5 already sets custom.reads_vfolder_config_files to TRUE during column creation, so unconditionally writing FALSE on downgrade clobbered that valid prior state. Drop the UPDATE so downgrade leaves the row untouched. Co-Authored-By: Claude Opus 4.7 --- .../0b10b2c6a972_seed_reads_vfolder_for_custom_variant.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/ai/backend/manager/models/alembic/versions/0b10b2c6a972_seed_reads_vfolder_for_custom_variant.py b/src/ai/backend/manager/models/alembic/versions/0b10b2c6a972_seed_reads_vfolder_for_custom_variant.py index 76b223115ba..9bf96f42509 100644 --- a/src/ai/backend/manager/models/alembic/versions/0b10b2c6a972_seed_reads_vfolder_for_custom_variant.py +++ b/src/ai/backend/manager/models/alembic/versions/0b10b2c6a972_seed_reads_vfolder_for_custom_variant.py @@ -36,8 +36,4 @@ def upgrade() -> None: def downgrade() -> None: - op.execute( - sa.text( - "UPDATE runtime_variants SET reads_vfolder_config_files = false WHERE name = 'custom'" - ) - ) + pass