使用 Drizzle Kit 进行迁移
This guide assumes familiarity with:
Drizzle Kit 是一个用于使用 Drizzle 管理 SQL 数据库迁移的 CLI 工具。
npm
yarn
pnpm
bun
npm i drizzle-kit
IMPORTANT
Drizzle Kit 可根据你的模式生成并运行 SQL 迁移文件,将模式直接推送到数据库,从数据库中提取模式,启动 Drizzle Studio,并提供一些实用命令。
npm
yarn
pnpm
bun
npx drizzle-kit 生成 drizzle-kit 迁移 drizzle-kit 推送 drizzle-kit 拉取 drizzle-kit 检查 drizzle-kit 启动 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 dialect
和 schema
路径,以便 Drizzle Kit 知道如何生成迁移。
📦 <project root>
├ 📂 drizzle
├ 📂 src
├ 📜 .env
├ 📜 drizzle.config.ts <--- Drizzle config file
├ 📜 package.json
└ 📜 tsconfig.json
simple config
extended config
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 drizzle-kit push --config=drizzle-prod.drizzle.config
📦 <project root>
├ 📂 drizzle
├ 📂 src
├ 📜 .env
├ 📜 drizzle-dev.config.ts
├ 📜 drizzle-prod.config.ts
├ 📜 package.json
└ 📜 tsconfig.json