PostgreSQL 导出器文档
模块:
src/exporters/PostgreSQLExporter.ts
用途: 将 JSON Schema 转换为 PostgreSQL CREATE TABLE 语句
📑 目录
概述
PostgreSQLExporter 将 schema-dsl 生成的 JSON Schema 转换为 PostgreSQL 的 DDL 语句,支持丰富的 PostgreSQL 特性。
核心功能
- ✅ 生成
CREATE TABLEDDL 语句 - ✅ 自动类型映射(支持 JSONB、UUID 等)
- ✅ 自动生成 CHECK 约束
- ✅ 支持表和列的 COMMENT
- ✅ 支持多种索引类型(btree、hash、gin、gist)
- ✅ 支持 PostgreSQL schema 命名空间
快速开始
输出:
API 参考
构造函数
参数:
方法
export(tableName, jsonSchema)
生成 PostgreSQL CREATE TABLE 语句。
参数:
tableName(string): 表名jsonSchema(Object): JSON Schema 对象(必须是 object 类型)
返回值:
string: PostgreSQL DDL 语句(包含 COMMENT 语句)
generateIndex(tableName, columnName, options)
生成索引创建语句。
参数:
tableName(string): 表名columnName(string): 列名options.name(string): 索引名(可选)options.unique(boolean): 是否唯一索引options.method(string): 索引方法(btree/hash/gin/gist)
PostgreSQLExporter.export(tableName, jsonSchema) (静态方法)
快速导出,无需实例化。
配置选项
Schema 命名空间
完整示例
用户表 DDL 生成
输出:
类型映射
CHECK 约束
PostgreSQLExporter 会自动为以下约束生成 CHECK 语句:
字符串长度约束
数值范围约束
枚举约束
索引类型
导出限制
⚠️ 重要提示: PostgreSQL 虽然支持 CHECK 约束,但仍有部分特性无法导出。
PostgreSQL 不支持的特性:
- ❌ 正则表达式约束(
pattern) - ❌ 嵌套对象约束(导出为
JSONB,内部约束丢失) - ❌ 条件验证逻辑(
dsl.match(),dsl.if())
详细说明: 请阅读 导出限制说明文档
相关文档
对应示例文件
示例入口: postgresql-exporter.ts
说明: 覆盖 PostgreSQL DDL 导出、CHECK 约束示意,以及 generateIndex() 生成 gin 索引。