Skip to content
GitHubXDiscord

Hyperdrive

Cloudflare Hyperdrive provides serverless connection pooling and caching for PostgreSQL databases.

Create a basic Hyperdrive connection to a PostgreSQL database.

import { Hyperdrive } from "alchemy/cloudflare";
const db = await Hyperdrive("my-postgres-db", {
name: "my-postgres-db",
origin: {
database: "postgres",
host: "database.example.com",
password: alchemy.secret("your-password"),
port: 5432,
user: "postgres",
},
});

Create a Hyperdrive connection with caching disabled.

const noCacheDb = await Hyperdrive("no-cache-db", {
name: "no-cache-db",
origin: {
database: "postgres",
host: "database.example.com",
password: alchemy.secret(process.env.DB_PASSWORD),
port: 5432,
user: "postgres",
},
caching: {
disabled: true,
},
});

Create a Hyperdrive connection with mTLS security.

const secureDb = await Hyperdrive("secure-db", {
name: "secure-db",
origin: {
database: "postgres",
host: "database.example.com",
password: alchemy.secret(process.env.DB_PASSWORD),
port: 5432,
user: "postgres",
},
mtls: {
ca_certificate_id: "00000000-0000-0000-0000-0000000000",
mtls_certificate_id: "00000000-0000-0000-0000-0000000000",
sslmode: "verify-full",
},
});

Create a Hyperdrive connection using access client credentials.

const accessDb = await Hyperdrive("access-db", {
name: "access-db",
origin: {
database: "postgres",
host: "database.example.com",
access_client_id: "client-id",
access_client_secret: alchemy.secret(process.env.ACCESS_CLIENT_SECRET),
port: 5432,
user: "postgres",
},
});

Use Hyperdrive with a Cloudflare Worker.

import { Worker, Hyperdrive } from "alchemy/cloudflare";
const db = await Hyperdrive("my-db", {
name: "my-db",
origin: {
database: "postgres",
host: "database.example.com",
password: alchemy.secret("password"),
user: "postgres",
},
});
await Worker("my-worker", {
name: "my-worker",
script: "console.log('Hello, world!')",
bindings: {
DB: db,
},
});