feat: 优化图片资源删除管理,生图任务列表管理

This commit is contained in:
2026-08-30 14:50:33 +08:00
parent 4ee667142b
commit 957289f717
46 changed files with 4180 additions and 524 deletions
@@ -0,0 +1,44 @@
"""add asset image lifecycle fields
Revision ID: a41e8c7f4b20
Revises: 658b0503f71c
Create Date: 2026-08-30 09:00:00
"""
from __future__ import annotations
from alembic import op
import sqlalchemy as sa
revision = "a41e8c7f4b20"
down_revision = "658b0503f71c"
branch_labels = None
depends_on = None
def upgrade() -> None:
op.add_column("product_assets", sa.Column("original_url", sa.Text(), nullable=True))
op.add_column("product_assets", sa.Column("original_storage_key", sa.String(length=1024), nullable=True))
op.add_column("product_assets", sa.Column("current_storage_key", sa.String(length=1024), nullable=True))
op.add_column("product_assets", sa.Column("watermark_enabled", sa.Boolean(), nullable=False, server_default=sa.false()))
op.add_column("product_assets", sa.Column("watermark_config", sa.JSON(), nullable=True))
# 兼容旧数据:采集图优先以已转存文件为原图;生成图若此前已保存 source_url,则它是无水印原图。
op.execute(
"""
UPDATE product_assets
SET original_url = CASE
WHEN group_key = 'generated' AND source_url IS NOT NULL AND source_url <> '' THEN source_url
ELSE COALESCE(stored_url, source_url)
END
"""
)
def downgrade() -> None:
op.drop_column("product_assets", "watermark_config")
op.drop_column("product_assets", "watermark_enabled")
op.drop_column("product_assets", "current_storage_key")
op.drop_column("product_assets", "original_storage_key")
op.drop_column("product_assets", "original_url")