4.8 KiB
4.8 KiB
剩余步骤说明
所有源代码错误已修复!现在需要执行以下步骤来解决 Prisma Client 和依赖包的问题。
🔧 需要执行的命令(按顺序)
1. 安装新增的依赖包
npm install
这将安装以下新增的包:
@nestjs/passport@^10.0.0@nestjs/schedule@^4.0.0passport-jwt@^4.0.1@types/passport-jwt@^4.0.0
2. 生成 Prisma Client
npm run prisma:generate
这将根据更新后的 schema.prisma 生成新的 Prisma Client,包括:
DeadLetterEvent模型SmsCode模型
3. 创建并应用数据库迁移
npm run prisma:migrate
这将创建并应用新表的数据库迁移。如果提示输入迁移名称,可以使用:
add_dead_letter_and_sms_tables
4. 启动开发服务器
npm run start:dev
✅ 已修复的所有错误(共 21 个)
代码层面的修复:
-
✅ DomainException → DomainError (3 处)
-
✅ UserId 类型问题 (2 处)
- 修改为使用
UserId.create(params.userId)并使用WalletAddress.createFromMnemonic() - wallet-generator.service.ts:54-65
- wallet-generator.service.ts:84-95
- 修改为使用
-
✅ Seed Buffer 类型问题 (2 处)
- 添加
Buffer.from()转换 - wallet-generator.service.ts:102
- 添加
-
✅ IDENTITY_TOPICS 缺失主题 (2 处)
- 添加
KYC_APPROVED和ACCOUNT_FROZEN - event-publisher.service.ts:28-31
- 添加
-
✅ DomainEventMessage 缺失字段 (2 处)
- 添加
eventId和occurredAt字段 - event-retry.service.ts:40-47
- event-retry.service.ts:77-84
- 添加
需要命令解决的问题:
-
⏳ Prisma Client 未生成 (10 处)
- 需要运行
npm run prisma:generate - 涉及所有
prisma.deadLetterEvent和prisma.smsCode的调用
- 需要运行
-
⏳ 依赖包未安装 (2 处)
- 需要运行
npm install @nestjs/passport和passport-jwt
- 需要运行
📝 修改的文件列表
- ✏️ prisma/schema.prisma - 添加 DeadLetterEvent 和 SmsCode 模型
- ✏️ package.json - 添加依赖包
- ✏️ src/infrastructure/external/blockchain/wallet-generator.service.ts - 修复所有类型和导入问题
- ✏️ src/infrastructure/kafka/event-publisher.service.ts - 添加缺失的主题
- ✏️ src/infrastructure/kafka/event-retry.service.ts - 修复 DomainEventMessage 参数
🎯 验证步骤
完成上述命令后,验证所有问题已解决:
# 1. 检查编译
npm run build
# 2. 运行测试
npm test
# 3. 启动开发服务器
npm run start:dev
如果一切正常,你应该看到类似以下的输出:
[Nest] 12345 - 2025/11/24, 9:43:00 AM LOG [NestFactory] Starting Nest application...
[Nest] 12345 - 2025/11/24, 9:43:00 AM LOG [InstanceLoader] AppModule dependencies initialized
...
[Nest] 12345 - 2025/11/24, 9:43:01 AM LOG [NestApplication] Nest application successfully started
🔍 如果遇到问题
Prisma 迁移失败
如果数据库迁移失败,可以尝试:
# 重置数据库(开发环境)
npm run prisma:migrate reset
# 或手动创建迁移
npx prisma migrate dev --create-only
# 然后编辑迁移文件
# 最后应用迁移
npx prisma migrate dev
依赖安装失败
如果 npm install 失败,尝试:
# 清理缓存
npm cache clean --force
# 删除 node_modules 和 lock 文件
rm -rf node_modules package-lock.json
# 重新安装
npm install