## 数据完整性修复 (fix-critical-data-integrity) - 添加 error_translate.go 统一错误转换层 - 修复 nil 输入和 NotFound 错误处理 - 增强仓储层错误一致性 ## 仓储一致性修复 (fix-high-repository-consistency) - Group schema 添加 default_validity_days 字段 - Account schema 添加 proxy edge 关联 - 新增 UsageLog ent schema 定义 - 修复 UpdateBalance/UpdateConcurrency 受影响行数校验 ## 数据卫生修复 (fix-medium-data-hygiene) - UserSubscription 添加软删除支持 (SoftDeleteMixin) - RedeemCode/Setting 添加硬删除策略文档 - account_groups/user_allowed_groups 的 created_at 声明 timestamptz - 停止写入 legacy users.allowed_groups 列 - 新增迁移: 011-014 (索引优化、软删除、孤立数据审计、列清理) ## 测试补充 - 添加 UserSubscription 软删除测试 - 添加迁移回归测试 - 添加 NotFound 错误测试 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
40 lines
1.4 KiB
SQL
40 lines
1.4 KiB
SQL
-- 011_remove_duplicate_unique_indexes.sql
|
||
-- 移除重复的唯一索引
|
||
-- 这些字段在 ent schema 的 Fields() 中已声明 .Unique(),
|
||
-- 因此在 Indexes() 中再次声明 index.Fields("x").Unique() 会创建重复索引。
|
||
-- 本迁移脚本清理这些冗余索引。
|
||
|
||
-- 重复索引命名约定(由 Ent 自动生成/历史迁移遗留):
|
||
-- - 字段级 Unique() 创建的索引名: <table>_<field>_key
|
||
-- - Indexes() 中的 Unique() 创建的索引名: <table>_<field>
|
||
-- - 初始化迁移中的非唯一索引: idx_<table>_<field>
|
||
|
||
-- 仅当索引存在时才删除(幂等操作)
|
||
|
||
-- api_keys 表: key 字段
|
||
DROP INDEX IF EXISTS apikey_key;
|
||
DROP INDEX IF EXISTS api_keys_key;
|
||
DROP INDEX IF EXISTS idx_api_keys_key;
|
||
|
||
-- users 表: email 字段
|
||
DROP INDEX IF EXISTS user_email;
|
||
DROP INDEX IF EXISTS users_email;
|
||
DROP INDEX IF EXISTS idx_users_email;
|
||
|
||
-- settings 表: key 字段
|
||
DROP INDEX IF EXISTS settings_key;
|
||
DROP INDEX IF EXISTS idx_settings_key;
|
||
|
||
-- redeem_codes 表: code 字段
|
||
DROP INDEX IF EXISTS redeemcode_code;
|
||
DROP INDEX IF EXISTS redeem_codes_code;
|
||
DROP INDEX IF EXISTS idx_redeem_codes_code;
|
||
|
||
-- groups 表: name 字段
|
||
DROP INDEX IF EXISTS group_name;
|
||
DROP INDEX IF EXISTS groups_name;
|
||
DROP INDEX IF EXISTS idx_groups_name;
|
||
|
||
-- 注意: 每个字段的唯一约束仍由字段级 Unique() 创建的约束保留,
|
||
-- 如 api_keys_key_key、users_email_key 等。
|