Skip to content

[feat] database 模块新增 PostgreSQL 支持#660

Merged
Bkm016 merged 1 commit intoTabooLib:dev/6.2.3from
FxRayHughes:feat/postgresql-support-659
Feb 10, 2026
Merged

[feat] database 模块新增 PostgreSQL 支持#660
Bkm016 merged 1 commit intoTabooLib:dev/6.2.3from
FxRayHughes:feat/postgresql-support-659

Conversation

@FxRayHughes
Copy link
Contributor

概述

为 database 模块添加完整的 PostgreSQL 支持,同时升级 MySQL 驱动解决 MySQL 8+ 认证问题。

主要改动

新增模块

  • database-postgresql — PostgreSQL JDBC 驱动懒加载模块(@RuntimeDependency 按需下载 postgresql:42.7.9)

核心模块 database 新增

  • ColumnTypePostgreSQL — PostgreSQL 数据类型枚举(SMALLINT、INTEGER、BIGINT、TEXT、UUID、JSONB 等)
  • ColumnOptionPostgreSQL — PostgreSQL 列选项枚举(NOTNULL、PRIMARY_KEY、UNIQUE、KEY)
  • ColumnPostgreSQL — PostgreSQL 列定义(处理 DOUBLE PRECISION 等含空格类型名、过滤内联 KEY)
  • HostPostgreSQL — PostgreSQL 连接配置(支持 ConfigurationSection 构造)
  • ColumnBuilder.PostgreSQL — PostgreSQL 建表 DSL(id/timeCreate/timeModified)
  • Util.kt — ThreadLocal 标识符引用方言(MySQL 反引号 vs PostgreSQL 双引号)
  • ExecutableSource — PostgreSQL SQL 生成适配(CREATE TABLE、CREATE INDEX、pg_indexes 查询)
  • Database.kt — 新增 MySQL Connector/J 8.4.0 RuntimeDependency,HikariCP 支持 HostPostgreSQL
  • HostSQL.kt / datasource.yml — 默认驱动升级为 com.mysql.cj.jdbc.Driver

ORM 模块 database-ptc-object 新增/修改

  • ContainerPostgreSQL — PostgreSQL ORM 容器(类型映射、索引创建、SQL→PostgreSQL 类型推断)
  • @TableName 注解 — 支持自定义表名
  • @ColumnType 注解 — 新增 postgresql 参数(_DEFAULT 哨兵值自动推断)
  • CustomType 接口 — 新增 typePostgreSQL / lengthPostgreSQL 属性
  • ContainerOperator — UUID 序列化适配 PostgreSQL 原生 UUID 类型
  • ContainerOperatorImpl — 标识符引用方言感知(反引号→双引号替换)

MySQL 驱动升级

  • 新增 MySQL Connector/J 8.4.0 @RuntimeDependency,解决 MySQL 8+ caching_sha2_password 认证失败问题
  • 向后兼容 MySQL 5.x 服务器

向后兼容性

  • ThreadLocal 默认值为 BACKTICK,现有 MySQL/SQLite/H2 代码无需修改
  • @ColumnType 新增参数有默认值,现有注解使用不受影响
  • MySQL 8.x 驱动包含 com.mysql.jdbc.Driver 兼容类

Closes #659

- 新增 PostgreSQL 完整类型体系(ColumnTypePostgreSQL、ColumnOptionPostgreSQL、ColumnPostgreSQL、HostPostgreSQL)
- 新增 database-postgresql 模块,通过 @RuntimeDependency 懒加载 JDBC 驱动
- 新增 ContainerPostgreSQL ORM 容器,支持 PostgreSQL 原生类型映射
- 新增 ColumnBuilder.PostgreSQL 内部类,支持 PostgreSQL 建表语法
- 实现 ThreadLocal 标识符引用方言(MySQL 反引号 vs PostgreSQL 双引号)
- ExecutableSource 适配 PostgreSQL SQL 生成(CREATE TABLE、CREATE INDEX、索引查询)
- @ColumnType 注解新增 postgresql 参数,支持 _DEFAULT 哨兵值自动推断
- @TableName 注解支持自定义表名
- CustomType 接口新增 typePostgreSQL/lengthPostgreSQL 属性
- ContainerOperator 的 UUID 序列化适配 PostgreSQL 原生 UUID 类型
- 升级 MySQL 驱动至 Connector/J 8.4.0,解决 MySQL 8+ caching_sha2_password 认证问题
@Bkm016 Bkm016 merged commit e07fddd into TabooLib:dev/6.2.3 Feb 10, 2026
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[feat] database 模块新增 PostgreSQL 支持

2 participants

Comments