5.2 KiB
5.2 KiB
变更记录 - @go/db
[1.0.11] - 2026-05-13
- 基础设施对齐:
- 移除
encoding/json原生依赖,全面切换至apigo.cc/go/cast.UnmarshalJSON以增强类型兼容性。 - 移除测试代码中对
os.Remove的直接调用,统一切换至apigo.cc/go/file.Remove以支持隔离文件系统。
- 移除
- 稳定性增强:
- 验证并更新了测试用例,确保在 Go 1.25.0 环境下的执行稳定性。
- 更新
TEST.md性能基准,反映基础设施对齐后的最新指标。
[1.0.10] - 2026-05-10
- 功能增强:
- 全面支持“复杂标识符”:改进了
LIKE拦截逻辑中的正则表达式,支持带引号(`,",',[])和特殊字符(如-)的表名与字段名。 - 优化
cleanIdentifier:能够更精准地剥离多段式标识符(如table.column)中的包装引号。 - 增强
getFTSMatchSQLParts和extractTableName:确保在各种引用风格下均能正确定位影子列和源表。
- 全面支持“复杂标识符”:改进了
- 基础设施对齐:
- 升级
apigo.cc/go/log至v1.3.2。
- 升级
- 测试增强:
- 新增
TestComplexIdentifierFTS验证复杂标识符下的全文检索重定向。 - 修复并增强
TestAutonomousFTS以支持多种引用风格的兼容性测试。
- 新增
[1.3.0] - 2026-05-12
- 基础设施对齐:
- 官方发布 v1.3.0 对齐版本。
[1.0.11] - 2026-05-11
- 基础设施对齐:
- 最终基础设施对齐。
[1.0.10] - 2026-05-10
- 基础设施对齐:
- 升级
apigo.cc/go/redis至v1.0.8。 - 验证了
redis.NewIDMakerAPI 变更后的集成稳定性。 - 增强了 ID 生成器的集成测试,覆盖了 Redis 路径。
- 升级
[1.0.9] - 2026-05-09
- 基础设施对齐:
- 升级
apigo.cc/go/log至v1.1.13。 - 为
DBInfoLog和DBErrorLog实现Reset()方法,以遵循log的强制 Reset 契约。 - 调整
DBLog内的字段pos索引,从6开始紧凑排列,消除索引空洞。
- 升级
- 测试增强:
- 修复多个测试用例 (
TestSmartDelete,TestGenericQuery,TestTableProbing,TestVersionControl) 中因使用sqlite://:memory:DSN 导致的初始化失败问题。 - 引入
test_util.go和ResetAllForTest(),确保测试间的全局状态隔离。
- 修复多个测试用例 (
[1.0.6] - 2026-05-05
优化
- 日志体系重构:
- 引入
DBInfoLog和DBErrorLog类型化日志,分别继承log.InfoLog和log.ErrorLog。 - 利用
log包的新特性实现“零手动”调用栈捕获,业务端仅需关注错误信息和 SQL 现场。 - 进一步解耦业务字段与日志元数据。
- 引入
优化
- 日志自主化:
- 将数据库日志逻辑从
log包迁移至db包,实现日志格式与业务逻辑的深度绑定。 - 自定义
DBLog结构,利用log.GetEntry[DBLog]()对象池加速,并支持完整的错误堆栈捕获。 - 接入
log.Log的自动填充能力,精简元数据维护逻辑。
- 将数据库日志逻辑从
[1.0.4] - 2026-05-04
优化
- 日志增强:升级
apigo.cc/go/log至 v1.0.1,并重构数据库日志逻辑,利用新版log.DBAPI 直接支持错误字段和调用栈捕获,提升排障效率。
[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。