8237d170a5
[skip ci-format-check] #1899 clip_count 参数透传(from-assets 端点) - ClipsFromAssetsRequest 新增 clip_count: Optional[int] (1-10) 字段 - 保留旧字段 required_clips_count 兼容:未传 clip_count 时回退旧字段(超 10 截断);两者都未传时默认 3 段 - 按 clip_count 创建 N 个片段,大于模板 segment 数时按顺序循环复用 segment 配置 - 每个片段时长在对应 segment 的 duration_min/duration_max 之间随机取值,保持原有轮询分配逻辑 #1900 模板管理 API 清理(前端 PR#1911 my-templates/editing-planner 下线) - 保留 GET /templates 列表端点(生成页自动选模板使用) - 删除 HTTP 端点:GET/POST/PUT/PATCH/DELETE /templates/{id}、POST copy、GET usage、 POST toggle-favorite、POST validate、GET/POST/DELETE /categories、GET /tags/list - 保留内部默认模板兜底 _get_or_create_default_template_id 及 CreateTemplateUseCase - 删除对应 response_model 中不再使用的类(Copy/Update/Validate/Category/Usage/Favorite 等) - 清理测试:删除集成测试 test_template_categories_api.py,更新 3 个单测适配新 clip_count 语义 DB:未涉及 schema 变更(models 本就无 is_favorite/usage_count 等列),跳过 migration。 新增 scripts/cleanup_e2e_test_data.sql 供运维在 staging DB 手动清理 e2e-gen-*/asset-create_* 账号残留模板数据。 单测:15128 passed, 28 skipped(全量 tests/unit/)
53 lines
1.7 KiB
PL/PgSQL
53 lines
1.7 KiB
PL/PgSQL
-- 清理 e2e 测试账号产生的模板数据(#1900 模板管理页下线后一并清理历史脏数据)
|
|
--
|
|
-- 使用方法:连接到 staging / production 数据库后执行,例如:
|
|
-- psql "$DATABASE_URL" -f scripts/cleanup_e2e_test_data.sql
|
|
--
|
|
-- 删除范围:
|
|
-- 1. 用户账号 email 以 'e2e-gen-' 或 'asset-create_' 开头
|
|
-- 2. 这些用户创建的 templates / template_segments / template_categories 记录
|
|
-- 本脚本使用事务 + CTE,对生产数据无副作用。
|
|
|
|
BEGIN;
|
|
|
|
-- 1. 先收集要清理的测试账号 user_id
|
|
WITH test_users AS (
|
|
SELECT id AS user_id
|
|
FROM users
|
|
WHERE email LIKE 'e2e-gen-%'
|
|
OR email LIKE 'asset-create_%'
|
|
OR email LIKE 'e2e_%'
|
|
),
|
|
-- 2. 这些账号创建的模板
|
|
tpl_ids AS (
|
|
SELECT id AS template_id
|
|
FROM templates
|
|
WHERE user_id IN (SELECT user_id FROM test_users)
|
|
),
|
|
-- 3. 连带清理片段配置
|
|
del_segs AS (
|
|
DELETE FROM template_segments
|
|
WHERE template_id IN (SELECT template_id FROM tpl_ids)
|
|
RETURNING id
|
|
),
|
|
del_tpls AS (
|
|
DELETE FROM templates
|
|
WHERE id IN (SELECT template_id FROM tpl_ids)
|
|
RETURNING id
|
|
),
|
|
del_cats AS (
|
|
DELETE FROM template_categories
|
|
WHERE user_id IN (SELECT user_id FROM test_users)
|
|
RETURNING id
|
|
)
|
|
SELECT
|
|
(SELECT count(*) FROM test_users) AS users_matched,
|
|
(SELECT count(*) FROM del_segs) AS segments_deleted,
|
|
(SELECT count(*) FROM del_tpls) AS templates_deleted,
|
|
(SELECT count(*) FROM del_cats) AS categories_deleted;
|
|
|
|
-- 如需同时删除测试账号本身,取消下面的注释(默认保留账号只删模板数据):
|
|
-- DELETE FROM users WHERE id IN (SELECT user_id FROM test_users);
|
|
|
|
COMMIT;
|