"backend/internal/pkg/vscode:/vscode.git/clone" did not exist on "1004bd86ac262716c2093bb41a34e29bc3356d03"
  1. 31 Dec, 2025 1 commit
    • yangjianbo's avatar
      fix(数据层): 修复软删除与唯一约束冲突问题 · 59269dc1
      yangjianbo authored
      问题:软删除的记录仍占用唯一约束位置,导致删后无法重建同名/同邮箱/同订阅
      
      修复方案:使用 PostgreSQL 部分唯一索引(WHERE deleted_at IS NULL)
      - User.email: 移除字段级 Unique(),改用部分唯一索引
      - Group.name: 移除字段级 Unique(),改用部分唯一索引
      - UserSubscription.(user_id, group_id): 移除组合唯一索引,改用部分唯一索引
      - ApiKey.key: 保留普通唯一约束(安全考虑,已删除的 Key 不应重用)
      
      安全性:
      - 应用层已有 ExistsByXxx 检查,自动过滤软删除记录
      - 数据库层部分唯一索引提供最后一道防线
      
      🤖 Generated with [Claude Code](https://claude.com/claude-code
      
      )
      Co-Authored-By: default avatarClaude Opus 4.5 <noreply@anthropic.com>
      59269dc1