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();