Drizzle
Drizzle ORM 的安装
步骤 1 - 安装依赖
我使用的是 postgresql 数据库
pnpm add drizzle-orm pg dotenv
pnpm add -D drizzle-kit tsx @types/pg
步骤 2 - 配置环境变量
在根目录创建 .env 文件, 用于连接数据库
DATABASE_URL=postgresql://postgres:[密码]@localhost:5432/postgres
步骤 3 - 使用 Drizzle ORM 连接到数据库
// @/db/index.ts
import "dotenv/config";
import { drizzle } from "drizzle-orm/postgres";
import { Pool } from "pg";
import * as schema from "./schema";
const pool = new Pool({
connectionString: process.env.DATABASE_URL!, // .env 文件定义的变量
});
export const db = drizzle({ client: pool, schema }); // schema 用于创建数据库
步骤 4 - 创建数据表
// @db/schema.ts
import { integer, pgTable, varchar } from "drizzle-orm/pg-core";
export const usersTable = pgTable("users", {
id: integer().primaryKey().generatedAlwaysAsIdentity(),
name: varchar({ length: 255 }).notNull(),
age: integer().notNull(),
email: varchar({ length: 255 }).notNull().unique(),
});
步骤 5 - 设置 Drizzle 配置文件
// drizzle.config.ts
import "dotenv/config";
import { defineConfig } from "drizzle-kit";
export default defineConfig({
out: "./drizzle", // pnpm drizzle-kit generate 输出的迁移文件
schema: "./db/schema.ts", // 上面创建的 schema 路径
dialect: "postgresql",
dbCredentials: {
url: process.env.DATABASE_URL!,
},
});
步骤 6 - 将创建的数据表同步到数据库
直接推送到数据库
pnpm drizzle-kit push
生成数据库迁移文件到代码
pnpm drizzle-kit generate
应用本地数据库迁移文件到数据库
pnpm drizzle-kit migrate
步骤 7 - 查询数据库
import { db } from "@/db";
const result = await db.query.users.findMany();