gin-base/cmd/gf-source
maguodong 398e732301 feat(database): 添加 ClickHouse 数据库驱动支持
- 实现了完整的 ClickHouse 驱动,包括连接、查询、插入、更新、删除等基本操作
- 添加了 ClickHouse 特有的数据类型转换和 SQL 过滤功能
- 实现了表结构查询和字段信息获取功能
- 添加了 Ping 检查和错误处理机制
- 增加了对 UPDATE 和 DELETE 语句的语法转换以适配 ClickHouse
- 添加了批量插入操作的支持
- 新增了 14 个测试用例文件用于验证数据库相关功能
2026-04-08 15:34:51 +08:00
..
internal feat(database): 添加 ClickHouse 数据库驱动支持 2026-04-08 15:34:51 +08:00
templates feat(database): 添加 ClickHouse 数据库驱动支持 2026-04-08 15:34:51 +08:00
README.md feat(database): 添加 ClickHouse 数据库驱动支持 2026-04-08 15:34:51 +08:00
gendao.go feat(generator): 添加代码生成模板常量定义 2026-04-08 14:11:46 +08:00
gendao_clear.go feat(generator): 添加代码生成模板常量定义 2026-04-08 14:11:46 +08:00
gendao_dao.go feat(generator): 添加代码生成模板常量定义 2026-04-08 14:11:46 +08:00
gendao_do.go feat(generator): 添加代码生成模板常量定义 2026-04-08 14:11:46 +08:00
gendao_entity.go feat(generator): 添加代码生成模板常量定义 2026-04-08 14:11:46 +08:00
gendao_gen_item.go feat(generator): 添加代码生成模板常量定义 2026-04-08 14:11:46 +08:00
gendao_structure.go feat(generator): 添加代码生成模板常量定义 2026-04-08 14:11:46 +08:00
gendao_table.go feat(generator): 添加代码生成模板常量定义 2026-04-08 14:11:46 +08:00
gendao_tag.go feat(generator): 添加代码生成模板常量定义 2026-04-08 14:11:46 +08:00
go.mod feat(database): 添加 ClickHouse 数据库驱动支持 2026-04-08 15:34:51 +08:00

README.md

GF-Source 自维护代码

这个目录包含了从 GoFrame (GF) 框架复制并修改的 DAO 生成工具源码,已将所有 gdb 相关引用替换为项目自定义的 database 包。

📁 目录结构

gf-source/
├── internal/                    # 内部工具包
│   ├── consts/                 # 常量定义(从 GF internal/consts 复制)
│   └── utility/                # 工具函数
│       ├── mlog/              # 日志工具
│       └── utils/             # 通用工具
├── templates/                  # 代码生成模板
│   ├── consts_gen_dao_template_dao.go
│   ├── consts_gen_dao_template_do.go
│   ├── consts_gen_dao_template_entity.go
│   └── consts_gen_dao_template_table.go
├── gendao*.go                  # DAO 生成核心逻辑
├── go.mod                      # 子模块依赖
└── go.sum

🔧 主要修改

1. 数据库接口替换

  • github.com/gogf/gf/v2/database/gdbgit.magicany.cc/black1552/gin-base/database
  • gdb.DBdatabase.DB
  • gdb.ConfigNodedatabase.ConfigNode
  • gdb.AddConfigNode()database.AddConfigNode()
  • gdb.Instance()database.Instance()
  • g.DB()database.Database()

2. 内部包路径修改

  • github.com/gogf/gf/cmd/gf/v2/internal/constsgit.magicany.cc/black1552/gin-base/cmd/gf-source/internal/consts
  • github.com/gogf/gf/cmd/gf/v2/internal/utility/mloggit.magicany.cc/black1552/gin-base/cmd/gf-source/internal/utility/mlog
  • github.com/gogf/gf/cmd/gf/v2/internal/utility/utilsgit.magicany.cc/black1552/gin-base/cmd/gf-source/internal/utility/utils

3. 包名统一

  • 所有 gendao 相关文件统一为 package gendao
  • 模板文件移至 templates/ 子目录(避免包名冲突)

📦 编译

cd cmd/gf-source
go build .

⚠️ 注意事项

  1. 这是参考代码:这个目录主要用于参考 GF 的 DAO 生成逻辑,实际使用的是 cmd/gin-dao-gen/main.go
  2. 不要直接导入:这个子模块有独立的 go.mod不应该被主项目直接导入
  3. 保持同步:如果 GF 更新了 DAO 生成逻辑,需要手动同步这些文件并重新应用修改

🔄 更新流程

如果需要从 GF 更新代码:

  1. D:\web-object\gf\cmd\gf\internal\cmd\gendao 复制最新文件
  2. 运行批量替换脚本将 gdb 改为 database
  3. 运行批量替换脚本将 internal 路径改为本项目路径
  4. 测试编译确保没有错误

📝 相关文件

  • 主程序:cmd/gin-dao-gen/main.go
  • 数据库包:database/
  • 配置文件:config/config.toml