mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-03-20 00:24:59 +08:00
Amp-Thread-ID: https://ampcode.com/threads/T-019cef45-a4d2-7548-86d2-d46bcd3db419 Co-authored-by: Amp <amp@ampcode.com>
71 lines
2.2 KiB
Python
71 lines
2.2 KiB
Python
"""
|
|
Add system_metadata and job_id columns to asset_references.
|
|
Change preview_id FK from assets.id to asset_references.id.
|
|
|
|
Revision ID: 0003_add_metadata_job_id
|
|
Revises: 0002_merge_to_asset_references
|
|
Create Date: 2026-03-09
|
|
"""
|
|
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
|
|
from app.database.models import NAMING_CONVENTION
|
|
|
|
revision = "0003_add_metadata_job_id"
|
|
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("job_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", naming_convention=NAMING_CONVENTION
|
|
) 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",
|
|
)
|
|
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"
|
|
)
|
|
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("job_id")
|
|
batch_op.drop_column("system_metadata")
|