INTEGRITY Dokumentace

Drizzle ORM

Drizzle ORM ↗ je odlehčené ORM pro TypeScript zaměřené na typovou bezpečnost. Tento příklad ukazuje, jak použít Drizzle ORM s PostgreSQL prostřednictvím Cloudflare Hyperdrive v aplikaci Workers.

Předpoklady

1. Nainstalujte Drizzle

Nainstalujte Drizzle ORM a jeho závislosti, jako je node-postgres ↗ (pg) ovladač:

npm i drizzle-orm pg dotenv
npm i -D drizzle-kit tsx @types/pg @types/node

Přidejte potřebné příznaky kompatibility s Node.js a vazbu Hyperdrive do svého wrangler.jsonc soubor:

{
	// required for database drivers to function
	"compatibility_flags": [
		"nodejs_compat"
	],
	// Set this to today's date
	"compatibility_date": "2026-08-28",
	"hyperdrive": [
		{
			"binding": "HYPERDRIVE",
			"id": "<your-hyperdrive-id-here>"
		}
	]
}
compatibility_flags = [ "nodejs_compat" ]
# Set this to today's date
compatibility_date = "2026-08-28"

[[hyperdrive]]
binding = "HYPERDRIVE"
id = "<your-hyperdrive-id-here>"

2. Nakonfigurujte Drizzle

2.1. Definujte schéma

S Drizzle ORM definujeme schéma v TypeScriptu, a nikoli psaním čistého SQL.

  1. Vytvořte složku /db/ v /src/.

  2. Vytvořte schema.ts .

  3. V schema.ts, definujte users tabulku, jak je znázorněno níže.

    src/db/schema.ts
    // src/db/schema.ts
    import { pgTable, serial, varchar, timestamp } from "drizzle-orm/pg-core";
    
    export const users = pgTable("users", {
    	id: serial("id").primaryKey(),
    	name: varchar("name", { length: 255 }).notNull(),
    	email: varchar("email", { length: 255 }).notNull().unique(),
    	createdAt: timestamp("created_at").defaultNow(),
    });

2.2. Připojte Drizzle ORM k databázi pomocí Hyperdrive

Při použití Drizzle ORM pro svou databázi použijte konfiguraci Hyperdrive.

Naplňte svůj index.ts soubor, jak je znázorněno níže.

src/index.ts
// src/index.ts
import { Client } from "pg";
import { drizzle } from "drizzle-orm/node-postgres";
import { users } from "./db/schema";

export interface Env {
	HYPERDRIVE: Hyperdrive;
}

export default {
	async fetch(request, env, ctx): Promise<Response> {
		// Create a new client instance for each request.
		const client = new Client({
			connectionString: env.HYPERDRIVE.connectionString,
		});

		// Connect to the database
		await client.connect();

		// Create the Drizzle client with the node-postgres connection
		const db = drizzle(client);

		// Sample query to get all users
		const allUsers = await db.select().from(users);

		return Response.json(allUsers);
	},
} satisfies ExportedHandler<Env>;

2.3. Nakonfigurujte Drizzle-Kit pro migrace (volitelné)

Pomocí Drizzle Kit CLI můžete na základě svého schématu generovat a spouštět SQL migrace ve vaší databázi. Viz Dokumentace Drizzle ORM ↗ další pokyny.

  1. Vytvořte .env soubor v kořenové složce projektu a přidejte připojovací řetězec k databázi. Rozhraní příkazové řádky Drizzle Kit tento připojovací řetězec použije k vytvoření a aplikování migrací.

    .env
    # .env
    # Replace with your direct database connection string
    DATABASE_URL='postgres://user:[email protected]/database-name'
  2. Vytvořte drizzle.config.ts soubor v kořenové složce projektu, abyste nakonfigurovali Drizzle Kit, a přidejte následující obsah:

    drizzle.config.ts
    // drizzle.config.ts
    import "dotenv/config";
    import { defineConfig } from "drizzle-kit";
    export default defineConfig({
    	out: "./drizzle",
    	schema: "./src/db/schema.ts",
    	dialect: "postgresql",
    	dbCredentials: {
    		url: process.env.DATABASE_URL!,
    	},
    });
  3. Vygenerujte migrační soubor pro databázi podle svých souborů schématu a použijte migrace na databázi.

    Spusťte následující dva příkazy:

    npx drizzle-kit generate
    No config path provided, using default 'drizzle.config.ts'
    Reading config file 'drizzle.config.ts'
    1 tables
    users 4 columns 0 indexes 0 fks
    
    [✓] Your SQL migration file ➜ drizzle/0000_mysterious_queen_noir.sql 🚀
    npx drizzle-kit migrate
    No config path provided, using default 'drizzle.config.ts'
    Reading config file 'drizzle.config.ts'
    Using 'postgres' driver for database querying

3. Nasaďte svůj Worker

Nasaďte svůj Worker.

npx wrangler deploy

Další kroky