4d09bd630e
- 文档 §5/§6:标题是单个 title_config dict(非 titles[] 数组),字段以 build_title_drawtext_filter() 为准:text/content、font_size/size、 font_color/color、position(top/center/bottom/custom)、pos_x/pos_y、bold、 stroke、shadow、enabled;删除不存在的 titles[]/fontSize/frame/start/end 描述 - script_id 改为可选:手动输入文案/TTS 直生场景不关联文案库条目,留空不校验, 避免手动文案用户被 ScriptNotFound 卡住;选了文案库时仍做归属校验 - 迁移 074:ai_avatar_render_jobs.script_id 默认空串 - 新增 schema 单测(script_id 空/空白/title_config 单 dict),94 测试全绿 Refs #1797 #1826
37 lines
1.0 KiB
Python
37 lines
1.0 KiB
Python
"""ai_avatar_render_jobs.script_id 放宽为可空串(手动文案直生场景不关联文案库)
|
|
|
|
Revision ID: 074_render_script_id_optional
|
|
Revises: 073_add_lipsync_tts_fields
|
|
Create Date: 2026-09-09
|
|
"""
|
|
|
|
import sqlalchemy as sa
|
|
|
|
from alembic import op
|
|
|
|
revision = "074_render_script_id_optional"
|
|
down_revision = "073_add_lipsync_tts_fields"
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
# 列保持 NOT NULL(空串占位),仅应用层允许不传;这里显式补 server_default 防止历史约束歧义
|
|
with op.batch_alter_table("ai_avatar_render_jobs") as batch:
|
|
batch.alter_column(
|
|
"script_id",
|
|
existing_type=sa.String(length=36),
|
|
nullable=False,
|
|
server_default="",
|
|
)
|
|
|
|
|
|
def downgrade() -> None:
|
|
with op.batch_alter_table("ai_avatar_render_jobs") as batch:
|
|
batch.alter_column(
|
|
"script_id",
|
|
existing_type=sa.String(length=36),
|
|
nullable=False,
|
|
server_default=None,
|
|
)
|