34 lines
2.1 KiB
Markdown
34 lines
2.1 KiB
Markdown
# 变更记录 - @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 下可自动启用。
|
||
- **错误处理一致性**:统一了 `QueryResult` 与 `ExecResult` 的错误传播逻辑,确保 `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` 结构体中的拼写错误 `isCommitedOrRollbacked` 为 `isCommittedOrRollbacked`。
|
||
- 统一了全模块的参数命名规范:`requestSql` -> `query`,`wheres` -> `conditions`。
|