You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.3 KiB
4.3 KiB
废除 storyboard_plans 功能 - 执行总结
执行日期: 2026-02-12
执行状态: ✅ 已完成
执行清单
✅ 数据库层
- 创建迁移文件
20260212_1800_remove_storyboard_plans.py - 删除
storyboard_plans表 - 移除
storyboards.default_plan_id字段 - 移除
storyboard_images.plan_id字段 - 移除
storyboard_videos.plan_id字段 - 删除所有相关索引和触发器
- 执行迁移:
alembic upgrade head - 验证数据库变更
✅ Model 层
- 删除
server/app/models/storyboard_plan.py - 更新
server/app/models/__init__.py(移除导入) - 更新
server/app/models/storyboard.py(移除 default_plan_id) - 更新
server/app/models/storyboard_resource.py(移除 plan_id)
✅ Schema 层
- 删除
server/app/schemas/storyboard_plan.py
✅ Repository 层
- 删除
server/app/repositories/storyboard_plan_repository.py
✅ Service 层
- 删除
server/app/services/storyboard_plan_service.py
✅ API 层
- 删除
server/app/api/v1/storyboard_plans.py - 更新
server/app/api/v1/__init__.py(移除路由注册)
✅ 测试层
- 删除
server/tests/unit/repositories/test_storyboard_plan_repository.py - 删除
server/tests/integration/test_storyboard_plans_api.py
✅ 文档层
- 更新
docs/server/adrs/05-storyboard-plans-table.md(标记为已废弃) - 创建
docs/server/changelogs/2026-02-12-remove-storyboard-plans.md
数据库验证结果
-- ✅ storyboard_plans 表已删除
SELECT tablename FROM pg_tables WHERE tablename = 'storyboard_plans';
-- 结果: 0 rows
-- ✅ storyboards.default_plan_id 字段已删除
SELECT column_name FROM information_schema.columns
WHERE table_name = 'storyboards' AND column_name = 'default_plan_id';
-- 结果: 0 rows
-- ✅ storyboard_images.plan_id 字段已删除
SELECT column_name FROM information_schema.columns
WHERE table_name = 'storyboard_images' AND column_name = 'plan_id';
-- 结果: 0 rows
-- ✅ storyboard_videos.plan_id 字段已删除
SELECT column_name FROM information_schema.columns
WHERE table_name = 'storyboard_videos' AND column_name = 'plan_id';
-- 结果: 0 rows
代码验证结果
- ✅ 所有 Python 文件编译通过
- ✅ 无语法错误
- ✅ 无导入错误
- ✅ 路由注册正确
删除的文件列表
server/app/models/storyboard_plan.py
server/app/schemas/storyboard_plan.py
server/app/repositories/storyboard_plan_repository.py
server/app/services/storyboard_plan_service.py
server/app/api/v1/storyboard_plans.py
server/tests/unit/repositories/test_storyboard_plan_repository.py
server/tests/integration/test_storyboard_plans_api.py
修改的文件列表
server/app/models/__init__.py
server/app/models/storyboard.py
server/app/models/storyboard_resource.py
server/app/api/v1/__init__.py
docs/server/adrs/05-storyboard-plans-table.md
新增的文件列表
server/alembic/versions/20260212_1800_remove_storyboard_plans.py
docs/server/changelogs/2026-02-12-remove-storyboard-plans.md
docs/server/changelogs/2026-02-12-storyboard-plans-removal-summary.md
当前迁移版本
20260212_1800 (head)
后续工作
前端适配(需要前端团队处理)
-
移除 API 调用
- 删除所有
/storyboards/{id}/plans相关的 API 调用 - 移除方案管理相关的 hooks 和 services
- 删除所有
-
移除 UI 组件
- 删除方案选择器组件
- 删除方案列表组件
- 删除方案创建/编辑表单
-
更新数据类型
- 从 Storyboard 类型中移除
defaultPlanId字段 - 从 StoryboardImage/Video 类型中移除
planId字段
- 从 Storyboard 类型中移除
测试验证
建议执行以下测试:
- 分镜 CRUD 功能测试
- 分镜资源上传测试
- 分镜看板功能测试
- 回归测试确保无影响
回滚方案
如需回滚,执行:
docker exec jointo-server-app alembic downgrade -1
⚠️ 注意:回滚会恢复表结构,但不会恢复已删除的数据。