2.1 KiB
2.1 KiB
变更记录 - @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与 Gotime.Time的自动转换逻辑。 - 所有的文档和注释已本地化为中文。
修复
- 修复了
Tx结构体中的拼写错误isCommitedOrRollbacked为isCommittedOrRollbacked。 - 统一了全模块的参数命名规范:
requestSql->query,wheres->conditions。