YC科技资讯网

OpenSpec实践:在现有项目上创建新变更-3

本文在前面示例项目的基础上进行业务需求变更。当前用户删除采用物理删除,会导致用户数据不可追溯,不利于审计与业务回滚。同时

本文在前面示例项目的基础上进行业务需求变更。

当前用户删除采用物理删除,会导致用户数据不可追溯,不利于审计与业务回滚。同时用户资料缺少 title(头衔)字段,无法满足展示与管理需求。需要将删除语义调整为软删除,并扩展用户信息模型。

一、步骤五:开始实施

在 GitHub Copilot Chat 中输入以下命令:

/opsx:apply user-soft-delete-and-title

核心代码改造已完成,接下来先运行测试验证实现是否符合软删除与 title 约束,然后再更新文档与勾选 tasks。

二、数据预处理

现有的数据需要怎么处理?表结构怎么执行变更?

可以让 AI 帮助生成一个可直接执行的完整 MySQL 迁移脚本(含回滚草案)。

如下是生成的可直接执行的完整 MySQL 迁移脚本(含回滚草案)

直接执行方式:

mysql -u <user> -p <database> < scripts/migrations/2026-04-10-user-status-backfill.sql

实际使用时需要替换 <user> 和 <database> 为实际值,例如:

mysql -u root -p openspec_demo < scripts/migrations/2026-04-10-user-status-backfill.sql

这份 SQL 是一份“可直接执行、可回滚”的用户表迁移脚本,目标是把删除语义切换到软删除并补充 title 字段。按结构看,它分 6 个执行阶段和 1 个回滚草案。

总体目标

给 user_info 增加 title 字段。统一 status 语义为 {0, -1}。把 status 默认值改成 0(有效)。增加 (status, id) 索引以优化“只查有效用户”的分页场景。

如下是上述命令执行完成后的数据表:

接下来,启动应用进行验证。如果验证通过,进行归档操作。