变更数据模型:$ARGUMENTS
存储的数据位于队友机器和服务器上已有的 JSON 文件中,因此每次变更必须在不破坏的情况下读取旧文件。
步骤
- 读取
src/lib/links/schema.ts、src/lib/links/store.ts和data/seed.json。 - 确定变更是增量(添加带有默认值的新可选字段)还是破坏性(重命名、删除、新增必填字段或类型变更)。
- 增量:在
linkSchema中添加带有.optional()或.default(...)的字段,如果用户可设置,则同时在linkInputSchema中添加。无需版本号升级。 - 破坏性:升级数据文件
version字面量(例如1→2)。将旧的 schema 保留为dataFileV1Schema,并在store.ts中添加一个upgradeV1toV2(data)函数,load()在读取 v1 文件时会应用该函数。切勿在读取时覆写文件;下一次save()将写入 v2。
- 增量:在
- 更新
data/seed.json至新的形状。 - 仅当任务要求时才更新用户界面。
- 在
src/lib/links/store.test.ts中的测试:- 新字段通过
createLink和listLinks进行往返测试。 - 对于破坏性变更:将 v1 文件写入临时数据路径,并断言
listLinks()返回升级后的链接,且后续的createLink保存的是 v2 文件。
- 新字段通过
- 运行
npm run check和npm run build。 - 在你的摘要中说明变更是增量还是破坏性,以及现有数据文件的处理方式。