Become a Gold Sponsor

使用 Drizzle Kit 进行迁移

This guide assumes familiarity with:

Drizzle Kit 是一个用于管理 SQL 数据库迁移的 CLI 工具。

npm
yarn
pnpm
bun
npm i drizzle-kit
IMPORTANT

确保首先阅读 Drizzle 的 入门指南迁移基础,并选择最适合您业务需求的 SQL 迁移流程。

根据您的架构,Drizzle Kit 让您生成和运行 SQL 迁移文件, 直接将架构推送到数据库,从数据库中提取架构,启动 Drizzle Studio,并具有一些实用命令。

npm
yarn
pnpm
bun
npx drizzle-kit generate
npx drizzle-kit migrate
npx drizzle-kit push
npx drizzle-kit pull
npx drizzle-kit check
npx drizzle-kit up
npx drizzle-kit studio
drizzle-kit generate让您根据 Drizzle 架构生成 SQL 迁移文件,无论是声明时还是后续更改时,点击这里查看
drizzle-kit migrate让您将生成的 SQL 迁移文件应用到您的数据库,点击这里查看
drizzle-kit pull让您提取(内省)数据库架构,将其转换为 Drizzle 架构并保存在您的代码库中,点击这里查看
drizzle-kit push让您在声明或后续架构更改时将 Drizzle 架构推送到数据库,点击这里查看
drizzle-kit studio将连接到您的数据库并为 Drizzle Studio 启动代理服务器,您可以使用它方便地浏览数据库,点击这里查看
drizzle-kit check将遍历所有生成的迁移并检查生成的迁移是否存在竞态条件(冲突),点击这里查看
drizzle-kit up用于升级之前生成的迁移快照,点击这里查看

Drizzle Kit 通过 drizzle.config.ts 配置文件或 CLI 参数进行配置。
至少需要提供 SQL dialectschema 路径,以便 Drizzle Kit 知道如何生成迁移。

📦 <项目根目录>
 ├ 📂 drizzle
 ├ 📂 src
 ├ 📜 .env
 ├ 📜 drizzle.config.ts  <--- Drizzle 配置文件
 ├ 📜 package.json
 └ 📜 tsconfig.json
简单配置
扩展配置
import { defineConfig } from "drizzle-kit";

export default defineConfig({
  dialect: "postgresql",
  schema: "./src/schema.ts",
});

您可以通过 CLI 参数提供 Drizzle Kit 配置路径,这在您有多个数据库阶段或多个数据库,或同一项目中有不同数据库时非常有用:

npm
yarn
pnpm
bun
npx drizzle-kit push --config=drizzle-dev.drizzle.config
npx drizzle-kit push --config=drizzle-prod.drizzle.config
📦 <项目根目录>
 ├ 📂 drizzle
 ├ 📂 src
 ├ 📜 .env
 ├ 📜 drizzle-dev.config.ts
 ├ 📜 drizzle-prod.config.ts
 ├ 📜 package.json
 └ 📜 tsconfig.json