跳转到内容

Schema 读取

readTableSchemalistTables 提供运行时 Schema 内省能力,可读取表的列、主键、索引等信息。基于 PostgreSQL information_schema 查询,索引读取为 best-effort。

import { listTables, readTableSchema } from "@ventostack/database";
// 列出所有用户表
const tables = await listTables(executor);
// ["users", "posts", "comments"]
// 读取表结构
const schema = await readTableSchema(executor, "users");
console.log(schema.columns); // 列信息数组
console.log(schema.indexes); // 索引信息数组
字段类型说明
tableNamestring表名
columnsColumnSchemaInfo[]列信息数组
indexesIndexSchemaInfo[]索引信息数组
字段类型说明
namestring列名
typestring数据类型
nullableboolean是否可空
defaultValueunknown默认值
isPrimaryboolean是否为主键
commentstring?列注释
字段类型说明
namestring索引名称
columnsstring[]索引包含的列
uniqueboolean是否唯一索引
函数说明
listTables(executor)列出 public schema 下所有用户表
readTableSchema(executor, tableName)读取指定表的列、主键和索引信息

注意:表名参数会进行正则校验(仅允许字母、数字、下划线,且以字母或下划线开头),防止 SQL 注入。