Menu

同步模板新功能

本文档介绍的同步步骤适用于基于 Git 仓库管理的项目升级,当你使用模板时,想要升级指定版本的功能,均可参考本文档。

本文档以 NEXTY.DEV 3.x 任意版本升级到 3.2.10 版本为例,介绍如何同步模板新功能。

NEXTY.DEV v3.2.10 版本升级了用户管理基础设施,新增了这些功能:

  • 邮箱验证码登录
  • 登录速率限制
  • 用户来源信息记录

这些功能可以让你更好地进行用户来源和用户归因分析,推荐使用 3.x 版本的开发者升级。

升级步骤

  1. 新建分支
git checkout -b upgrade/3.2.10
  1. 备份数据库

如果你要升级的功能会影响数据库设计,请先备份数据库或者准备一个新的数据库用于测试。

3.2.10 版本升级只新增一个数据表,不影响原有数据库结果,所以不需要做这一步。

  1. 添加 upstream 远程仓库
git remote add upstream "https://github.com/wenextdev/nexty.dev.git" 2>/dev/null || true
git fetch upstream --tags
  1. 选择要合并的提交

通过查看模板提交记录,3.2.10 版本新增功能涉及的提交记录有 2fb2b25 fe305c1 a3852c6 7e117cd eeb9c48 72c6f45 66079b8

现在用 cherry-pick 命令合并这些提交。

git cherry-pick 2fb2b25 fe305c1 a3852c6 7e117cd eeb9c48 72c6f45 66079b8

这一步可能会遇到冲突,请根据 Cursor 左侧面板 "Source Control" 提示解决冲突文件。

重要提示

如果遇到数据库迁移文件冲突,选择保留你自己的迁移文件,不要用模板的迁移文件:

  • lib/db/migrations/meta/, lib/db/migrations/00xx_xxxxxxx.sql 均为你自己生成的
  • lib/db/migrations/meta/_journal.json 没有携带任何模板迁移文件的记录

解决冲突后,继续执行命令:

git add -A
git cherry-pick --continue

执行命令 git status 查看状态,如果显示 "Cherry-pick currently in progress",则表示未完成,继续执行 git cherry-pick --continue 命令,直到同步完成。

git-status
  1. 安装依赖
pnpm install
  1. 修改环境变量

3.2.10 版本新增了环境变量 NEXT_PUBLIC_USER_SOURCE_TRACKING_ENABLED,设为 true 则开启用户来源信息记录,设为 false 则关闭。

NEXT_PUBLIC_USER_SOURCE_TRACKING_ENABLED="true"

这一步记得要修改生产环境的变量,否则生产环境不会生效。

  1. 迁移数据库

在执行迁移命令前,需要确认 lib/db/migrations/meta/, lib/db/migrations/00xx_xxxxxxx.sql 均为你自己生成的, lib/db/migrations/meta/_journal.json 也没有携带任何模板迁移文件的记录。

如果你在上面的步骤把这些文件用模板的记录合并了,你需要让 AI 帮你回退这些文件的版本。

确认无误后,执行迁移命令:

npm run db:generate
npm run db:migrate
  1. 本地验证与部署
npm run dev

确认功能无误后,合并到主分支,并推送代码到远程仓库部署。

  1. 更新生产数据库

如果你升级过程使用测试数据库,那么还需要给生产环境数据库执行迁移命名,同第 7 步。

总结

3.2.10 版本升级影响最小,收益最大,如果你不熟悉升级步骤,正好可以用来熟悉步骤。

对于其他版本的升级,如果仍然不确定如何操作,可以将本文档发给 AI 作为参考,并告知 AI 你当前版本和想要升级的版本,AI 会查看记录为你提供升级步骤。