Skip to content

MySQL

Source: src/Drizzle/MySQL.ts

Open a Drizzle/MySQL database from a connection URL using the drizzle-orm/effect-mysql2 integration.

const conn = yield* Cloudflare.Hyperdrive.Connect(Hyperdrive);
const db = yield* Drizzle.MySQL(conn.connectionString, { relations });
fetch: Effect.gen(function* () {
const rows = yield* db.select().from(users);
});

The pool opens on the first query of an execution, is reused for every query in it, and closes when the event settles (see makeExecutionMemo); plan/deploy never connect. Workers defaults (resolveMySQLConfig) are overridden via config.client:

const db = yield* Drizzle.MySQL(connectionString, {
relations,
client: { poolConfig: { ssl: { rejectUnauthorized: true } } },
});