@drizzle-lab/api

中文文档
0.30.2发布于 2025/01/26MITTypeScriptESM + CJS近 30 天下载 2322

Drizzle Lab API - Drizzle Kit API的叉子

中文使用文档
文档目录10 节
  1. 安装
  2. 特征
  3. API 参考
  4. 扩展
  5. 邮递SQL API
  6. MySQL API 数据
  7. SQLite API 数据
  8. (可选)扩展配置
  9. 环境变量
  10. 许可证

@ 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 输出中识别项目的项目 IDdrizzle-lab
TS_CONFIG_PATHTsconfig.json 路径./tsconfig.json
DRIZZLE_LAB_ENV_FILE_PATHEnv 文件路径undefined

许可证

麻省理工学院

版本与发布记录

@drizzle-lab/api 共发布 8 个版本,首次发布于 2024/11/17;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.30.2latest2025/01/261.8 年前
0.30.12025/01/251.8 年前
0.30.02025/01/251.8 年前
0.29.02024/11/292 年前
0.28.02024/11/182 年前
0.27.42024/11/172 年前

关于 @drizzle-lab/api 的常见问题

@drizzle-lab/api 是什么?

Drizzle Lab API - Drizzle Kit API的叉子

如何安装 @drizzle-lab/api?

在项目目录运行 npm install @drizzle-lab/api,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@electric-sql/pglite(>=0.2.0)、@libsql/client-wasm(>=0.9.0)、drizzle-kit(>=0.26)、drizzle-orm(>=0.36)、mysql2(>=3.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@drizzle-lab/api 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@drizzle-lab/api 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@drizzle-lab/api 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@drizzle-lab/api 可以商用吗?

@drizzle-lab/api 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@drizzle-lab/api 的下载量有多少?

根据 npm 官方下载统计,@drizzle-lab/api 在 2026/10/13 – 2026/11/11 这 30 天内被下载 2,322 次,日均约 77 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@drizzle-lab/api 还在维护吗?

最新版本 0.30.2 发布于 2025/01/26(1.8 年前);至今共发布 8 个版本,其中过去 12 个月发布了 0 个;首次发布于 2024/11/17。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。