@ rizzle- lab/ api
Drizzle Kit API叉 -- -- 增强功能,用于图案记录和可视化.
[大 这个包是一个基于Drizzle Kit的社区项目.
我建议使用 滴滴图案 尽可能多.
安装
npm install @drizzle-lab/api
特征
- 从文件或数据库导入计划
- 用类似 JSDoc 的语法记录您的计划
- 从 Drizzle 对象生成快照
- QQL 从计划生成
- QQ 从方案生成类型脚本
- 对 PostgreSQL 、 MySQL 和 SQLite 的支持
API 参考
扩展
记录您的计划 explain 函数.
工作桌和观点.
import { explain } from "@drizzle-lab/api/extensions";
import { pgTable, text, jsonb } from "drizzle-orm/pg-core";
export const users = pgTable("users", {
id: text("id").primaryKey(),
name: text("name").notNull(),
metadata: jsonb("metadata").$type<{ role: string }>(),
});
explain(users, {
description: "Users table storing core user information",
columns: {
id: "Unique identifier for the user",
name: "User's full name",
metadata: "Additional user metadata stored as JSON",
},
jsonShapes: {
metadata: {
role: "string",
},
},
});
邮递SQL API
导入并转换 PostgreSQL 计划 :
import { importDrizzleConfig } from "@drizzle-lab/api/config/node";
import { importFromFiles } from "@drizzle-lab/api/pg/node";
import {
importFromDatabase,
schemaToSql,
snapshotToTypeScript,
drizzleObjectsToSnapshot
} from "@drizzle-lab/api/pg";
// Import schema from config
const config = await importDrizzleConfig();
const drizzleObjects = await importFromFiles(config.schema);
// Import schema from database
const snapshot = drizzleObjectsToSnapshot(drizzleObjects, config);
// Generate SQL
const sql = schemaToSql(schema);
// Generate TypeScript
const ts = snapshotToTypeScript(snapshot, "preserve");
MySQL API 数据
导入并转换 MySQL 计划 :
import { importDrizzleConfig } from "@drizzle-lab/api/config/node";
import { importFromFiles } from "@drizzle-lab/api/mysql/node";
import {
importFromDatabase,
schemaToSql,
snapshotToTypeScript,
drizzleObjectsToSnapshot
} from "@drizzle-lab/api/mysql";
// Import schema from config
const config = await importDrizzleConfig();
const drizzleObjects = await importFromFiles(config.schema);
// Generate snapshot
const snapshot = drizzleObjectsToSnapshot(drizzleObjects, config);
// Generate SQL
const sql = schemaToSql(schema);
// Generate TypeScript
const ts = snapshotToTypeScript(snapshot, "preserve");
SQLite API 数据
导入并转换 SQLite 计划 :
import { importDrizzleConfig } from "@drizzle-lab/api/config/node";
import { importFromFiles } from "@drizzle-lab/api/sqlite/node";
import {
importFromDatabase,
schemaToSql,
snapshotToTypeScript,
drizzleObjectsToSnapshot
} from "@drizzle-lab/api/sqlite";
// Import schema from config
const config = await importDrizzleConfig();
const drizzleObjects = await importFromFiles(config.schema);
// Generate snapshot
const snapshot = drizzleObjectsToSnapshot(drizzleObjects, config);
// Generate SQL
const sql = schemaToSql(schema);
// Generate TypeScript
const ts = snapshotToTypeScript(snapshot, "preserve");
(可选)扩展配置
export default defineConfig({
// ...
lab: {
projectId: "drizzle-lab", // optional, defaults to "drizzle-lab". Used to identify the project in json output
},
});
环境变量
这些都是可选的.
| 变量 | 说明 | 默认 |
|---|---|---|
DRIZZLE_LAB_DEBUG | 启用调试日志 | false |
DRIZZLE_LAB_CWD | 工作目录 | "" |
DRIZZLE_LAB_CONFIG_PATH | 配置文件的路径 | drizzle.config.ts |
DRIZZLE_LAB_SAVE_DIR | 要保存输出的目录 | ./drizzle |
DRIZZLE_LAB_PROJECT_ID | 在 json 输出中识别项目的项目 ID | drizzle-lab |
TS_CONFIG_PATH | Tsconfig.json 路径 | ./tsconfig.json |
DRIZZLE_LAB_ENV_FILE_PATH | Env 文件路径 | undefined |
许可证
麻省理工学院