MySQL 导出器文档
模块:
src/exporters/MySQLExporter.ts
用途: 将 JSON Schema 转换为 MySQL CREATE TABLE 语句
📑 目录
概述
MySQLExporter 将 schema-dsl 生成的 JSON Schema 转换为 MySQL 的 DDL 语句,包括 CREATE TABLE 和索引创建语句。
核心功能
- ✅ 生成
CREATE TABLEDDL 语句 - ✅ 自动类型映射(JSON Schema → MySQL)
- ✅ 支持 NOT NULL、DEFAULT、COMMENT
- ✅ 自动检测主键
- ✅ 生成索引 DDL
- ✅ 可配置存储引擎和字符集
快速开始
输出:
API 参考
构造函数
参数:
方法
export(tableName, jsonSchema)
生成 MySQL CREATE TABLE 语句。
参数:
tableName(string): 表名jsonSchema(Object): JSON Schema 对象(必须是 object 类型)
返回值:
string: MySQL DDL 语句
generateIndex(tableName, columnName, options)
生成索引创建语句。
参数:
tableName(string): 表名columnName(string): 列名options.name(string): 索引名(可选,默认idx_表名_列名)options.unique(boolean): 是否唯一索引(默认 false)
MySQLExporter.export(tableName, jsonSchema) (静态方法)
快速导出,无需实例化。
配置选项
存储引擎
字符集配置
完整示例
用户表 DDL 生成
输出:
类型映射
约束映射
主键检测
导出器会自动检测以下字段作为主键:
- 名为
id的字段 - 名为
_id的字段
如果存在这些字段,会自动添加 PRIMARY KEY 约束。
导出限制
⚠️ 重要提示: MySQL 对约束的支持有限。
MySQL 不支持的特性:
- ❌ 正则表达式约束(
pattern) - ❌ 数值范围约束(
minimum/maximum) - ❌ 枚举 CHECK 约束(导出为普通
VARCHAR) - ❌ 字符串最小长度(
minLength) - ❌ 条件验证逻辑(
dsl.match(),dsl.if())
详细说明: 请阅读 导出限制说明文档
相关文档
对应示例文件
示例入口: mysql-exporter.ts
说明: 覆盖 export() 生成 DDL、主键检测,以及 generateIndex() 生成普通/唯一索引。