使用 Drizzle Kit 进行迁移
本指南假定您已熟悉:
Drizzle Kit 是一个用于通过 Drizzle 管理 SQL 数据库迁移的 CLI 工具。
npm
yarn
pnpm
bun
npm i -D drizzle-kit
IMPORTANT
基于你的 schema,Drizzle Kit 允许你生成并运行 SQL 迁移文件, 直接将 schema 推送到数据库,从数据库拉取 schema,启动 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 schema 在首次声明时或后续变更时生成 SQL 迁移文件,点此查看。 |
drizzle-kit migrate | 允许你将生成的 SQL 迁移文件应用到数据库,点此查看。 |
drizzle-kit pull | 允许你拉取(introspect)数据库 schema,将其转换为 Drizzle schema 并保存到你的代码库中,点此查看 |
drizzle-kit push | 允许你在首次声明时或后续 schema 变更时将你的 Drizzle schema 推送到数据库,点此查看 |
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.jsonsimple config
extended config
import { defineConfig } from "drizzle-kit";
export default defineConfig({
dialect: "singlestore",
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
📦 <project root>
├ 📂 drizzle
├ 📂 src
├ 📜 .env
├ 📜 drizzle-dev.config.ts
├ 📜 drizzle-prod.config.ts
├ 📜 package.json
└ 📜 tsconfig.json