使用 drizzle + drizzle-kit 的完整指南:

https://orm.drizzle.team/docs/get-started/postgresql-new

基本文件结构(在 NextJS 项目中):

📦 <project root>
 ├ 📂 drizzle
 └ 📂 src
	    └ 📂 server
			  └ 📂 db
					 │ 📜 schema.ts
			 		 └ 📜 db.ts
 ├ 📜 .env
 ├ 📜 drizzle.config.ts
 ├ 📜 package.json
 └ 📜 tsconfig.json

1. 安装依赖:

pnpm add drizzle-orm pg dotenv
pnpm add -D drizzle-kit tsx @types/pg

2. 在 .env 文件中设置环境变量:

# postgres://<user>:<password>@<host>:<port>/<database>
DATABASE_URL="postgres://postgres:123456@localhost:5432/postgres"

3. 创建 src/server/db/db.ts ;将 Drizzle ORM 连接到 postgres 数据库:

import 'dotenv/config'
import { drizzle } from 'drizzle-orm/node-postgres'

export const db = drizzle(process.env.DATABASE_URL!)

4. 创建 src/server/db/schema.ts,定义 users 表的 schema 表结构:

import { serial, pgTable, varchar } from 'drizzle-orm/pg-core'

export const Users = pgTable('users', {
  id: serial('user_id').primaryKey(),
  name: varchar('name', { length: 50 }).notNull()
})

5. 配置 drizzle.config.ts

import 'dotenv/config'
import { defineConfig } from 'drizzle-kit'

export default defineConfig({
  schema: './src/server/db/schema.ts',
  dialect: 'postgresql',
  dbCredentials: {
    url: process.env.DATABASE_URL!,
  },
  verbose: true,
  strict: true
})

6. 本地执行 npx drizzle-kit push 将变更更新到数据库:

npx drizzle-kit push

7. 本地执行 npx drizzle-kit studio 启动可视化的数据库调试工具:

npx drizzle-kit studio

8. 在可视化界面中添加两条数据