hi-server/.trae/documents/迁移文件重复修复计划.md
shanshanzhong 657c2930b1
All checks were successful
Build docker and publish / build (20.15.1) (push) Successful in 4m57s
feat(用户管理): 添加最后登录时间和会员状态功能
- 新增数据库迁移文件添加last_login_time字段
- 在登录逻辑中更新最后登录时间
- 添加FindActiveSubscribesByUserIds方法查询用户订阅状态
- 在用户列表接口中聚合最后登录时间和会员状态信息
- 更新相关API定义和模型结构
- 修复迁移文件版本号冲突问题
- 移除omitempty标签确保字段始终返回
2026-01-05 01:46:39 -08:00

1.1 KiB

迁移文件重复问题修复计划

问题分析

根据终端日志报错 panic: failed to init driver with path database: duplicate migration file: 02121_apple_iap_transactions.down.sql,系统启动失败的原因是存在重复的迁移版本号

initialize/migrate/database/ 目录下,存在两个版本号相同的迁移文件:

  1. 02121_add_user_last_login_time.up.sql (我们刚刚创建的)
  2. 02121_apple_iap_transactions.up.sql (已存在的)

由于 golang-migrate 要求版本号必须唯一,这两个文件都使用了 02121 前缀,导致冲突。

解决方案

将我们新创建的 add_user_last_login_time 迁移文件的版本号递增为 02122

实施步骤

  1. 重命名迁移文件:

    • 02121_add_user_last_login_time.up.sql -> 02122_add_user_last_login_time.up.sql
    • 02121_add_user_last_login_time.down.sql -> 02122_add_user_last_login_time.down.sql
  2. 验证:

    • 确认目录下不再有重复前缀的文件。
    • 建议用户重新运行程序。

补充说明

此操作仅涉及文件重命名,不修改文件内容,风险极低。