db/CHANGELOG.md

2.1 KiB
Raw Blame History

变更记录 - @go/db

[1.0.3] - 2026-05-04

新增

  • 自动随机 ID (Auto Random ID):当表主键或唯一索引字段类型为 char(8/10/12/14) 且值为空时,自动填充分布式唯一 ID。
  • 智能 ID 生成器自动适配数据库类型MySQL 右旋散列、PostgreSQL 时间单调、SQLite 纯随机),优先使用 Redis 分布式生成器。

[1.0.2] - 2026-05-04

修复

  • PostgreSQL 增强:补全了 getTable 中的元数据探测逻辑,使 autoVersion 和影子删除在 PostgreSQL 下可自动启用。
  • 错误处理一致性:统一了 QueryResultExecResult 的错误传播逻辑,确保 r.Error 在数据处理阶段也能正确记录。
  • 单元测试修复:修正了 DB_test.go 中因 SQLite 时区差异导致的 TestInsertReplaceUpdateDelete 偶发失败。

优化

  • 性能提升:在 Base.go 中引入了 sync.Map 缓存结构体反射解析结果,减少 SQL 生成过程中的反射开销。

[1.0.1] - 2026-05-03

新增

  • 架构 DSL (Schema-as-Code):支持通过文本 DSL 定义并自动同步数据库结构。
  • 影子删除 (Shadow Deletion):支持 SD 标记,使用 db.Remove 自动将删除数据移动到 _deleted 后缀的备份表中。
  • 乐观锁与版本控制:支持 db.Update 自动处理版本递增与冲突检测。
  • 泛型支持:新增 db.ToSlice[T]db.To[T],提供类型安全的查询结果映射。
  • PostgreSQL 支持:初步支持 PostgreSQL 的架构同步逻辑。
  • AI 友好文档:新增 db.SchemaMarkdown() 自动生成 Markdown 格式的数据库模型文档。

优化

  • 重构了 makeResults 逻辑,预计算 Struct 字段映射,显著提升大数据集下的查询性能。
  • 完善了 SQLite 的 DATETIME 与 Go time.Time 的自动转换逻辑。
  • 所有的文档和注释已本地化为中文。

修复

  • 修复了 Tx 结构体中的拼写错误 isCommitedOrRollbackedisCommittedOrRollbacked
  • 统一了全模块的参数命名规范:requestSql -> querywheres -> conditions