← Hyperdrive (Postgres & MySQL) / hyperdrive / examples / connect-to-mysql / mysql-drivers-and-libraries
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 MySQL prostřednictvím Cloudflare Hyperdrive v aplikaci Workers.
Předpoklady
- Účet Cloudflare s přístupem k Workers
- Databáze MySQL
- A konfigurace Hyperdrive k vaší databázi MySQL
1. Nainstalujte Drizzle
Nainstalujte Drizzle ORM a jeho závislosti, jako je mysql2 ↗ ovladač:
# mysql2 v3.13.0 or later is required
npm i drizzle-orm mysql2 dotenv
npm i -D drizzle-kit tsx @types/nodePř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.
-
Vytvořte složku
/db/v/src/. -
Vytvořte
schema.ts. -
V
schema.ts, definujteuserstabulku, jak je znázorněno níže.src/db/schema.ts// src/schema.ts import { mysqlTable, int, varchar, timestamp } from "drizzle-orm/mysql-core"; export const users = mysqlTable("users", { id: int("id").primaryKey().autoincrement(), 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 přihlašovací údaje ze své konfigurace Hyperdrive.
Naplňte svůj index.ts soubor, jak je znázorněno níže.
// src/index.ts
import { drizzle } from "drizzle-orm/mysql2";
import { createConnection } from "mysql2/promise";
import { users } from "./db/schema";
export interface Env {
HYPERDRIVE: Hyperdrive;
}
export default {
async fetch(request, env, ctx): Promise<Response> {
// Create a connection using the mysql2 driver with the Hyperdrive credentials (only accessible from your Worker).
const connection = await createConnection({
host: env.HYPERDRIVE.host,
user: env.HYPERDRIVE.user,
password: env.HYPERDRIVE.password,
database: env.HYPERDRIVE.database,
port: env.HYPERDRIVE.port,
// Required to enable mysql2 compatibility for Workers
disableEval: true,
});
// Create the Drizzle client with the mysql2 driver connection
const db = drizzle(connection);
// 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.
-
Vytvořte
.envsoubor 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='mysql://user:[email protected]/database-name' -
Vytvořte
drizzle.config.tssoubor v kořenové složce projektu, abyste nakonfigurovali Drizzle Kit, a přidejte následující obsah:drizzle.config.tsimport 'dotenv/config'; import { defineConfig } from 'drizzle-kit'; export default defineConfig({ out: './drizzle', schema: './src/db/schema.ts', dialect: 'mysql', dbCredentials: { url: process.env.DATABASE_URL!, }, }); -
Vygenerujte migrační soubor pro databázi podle svých souborů schématu a použijte migrace na databázi.
npx drizzle-kit generateNo config path provided, using default 'drizzle.config.ts' Reading config file 'drizzle.config.ts' Reading schema files: /src/db/schema.ts 1 tables users 4 columns 0 indexes 0 fks [✓] Your SQL migration file ➜ drizzle/0000_daffy_rhodey.sql 🚀npx drizzle-kit migrateNo config path provided, using default 'drizzle.config.ts' Reading config file 'drizzle.config.ts'
3. Nasaďte svůj Worker
Nasaďte svůj Worker.
npx wrangler deployDalší kroky
- Další informace o Jak funguje Hyperdrive.
- Viz průvodce řešením problémů pro ladění běžných problémů.
- Zjistěte více o dalších možnosti úložiště dostupné pro Cloudflare Workers.