mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-03-15 22:27:34 +08:00
Clients receive preview_id in API responses but could not dereference it through public routes (which use reference IDs). Now preview_id is a self-referential FK to asset_references.id so the value is directly usable in the public API. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
61 lines
1.9 KiB
Python
61 lines
1.9 KiB
Python
"""
|
|
Add system_metadata and prompt_id columns to asset_references.
|
|
Change preview_id FK from assets.id to asset_references.id.
|
|
|
|
Revision ID: 0003_add_metadata_prompt
|
|
Revises: 0002_merge_to_asset_references
|
|
Create Date: 2026-03-09
|
|
"""
|
|
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
|
|
revision = "0003_add_metadata_prompt"
|
|
down_revision = "0002_merge_to_asset_references"
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
with op.batch_alter_table("asset_references") as batch_op:
|
|
batch_op.add_column(
|
|
sa.Column("system_metadata", sa.JSON(), nullable=True)
|
|
)
|
|
batch_op.add_column(
|
|
sa.Column("prompt_id", sa.String(length=36), nullable=True)
|
|
)
|
|
|
|
# Change preview_id FK from assets.id to asset_references.id (self-ref).
|
|
# Existing values are asset-content IDs that won't match reference IDs,
|
|
# so null them out first.
|
|
op.execute("UPDATE asset_references SET preview_id = NULL WHERE preview_id IS NOT NULL")
|
|
with op.batch_alter_table("asset_references") as batch_op:
|
|
batch_op.drop_constraint(
|
|
"fk_asset_references_preview_id_assets", type_="foreignkey"
|
|
)
|
|
batch_op.create_foreign_key(
|
|
"fk_asset_references_preview_id_asset_references",
|
|
"asset_references",
|
|
["preview_id"],
|
|
["id"],
|
|
ondelete="SET NULL",
|
|
)
|
|
|
|
|
|
def downgrade() -> None:
|
|
with op.batch_alter_table("asset_references") as batch_op:
|
|
batch_op.drop_constraint(
|
|
"fk_asset_references_preview_id_asset_references", type_="foreignkey"
|
|
)
|
|
batch_op.create_foreign_key(
|
|
"fk_asset_references_preview_id_assets",
|
|
"assets",
|
|
["preview_id"],
|
|
["id"],
|
|
ondelete="SET NULL",
|
|
)
|
|
|
|
with op.batch_alter_table("asset_references") as batch_op:
|
|
batch_op.drop_column("prompt_id")
|
|
batch_op.drop_column("system_metadata")
|