Cloudflare
Connect DB0 to Cloudflare D1 or PostgreSQL/MySQL using Cloudflare Hyperdrive
#Cloudflare D1
Note
This connector works within cloudflare workers with D1 enabled.
#Usage
Use cloudflare-d1 connector:
import { createDatabase } from "db0";
import cloudflareD1 from "db0/connectors/cloudflare-d1";
const db = createDatabase(
cloudflareD1({
bindingName: "DB",
}),
);Note
In order for the driver to work, globalThis.__env__.DB value should be set.
If you are using Nitro you don't need to do any extra steps.
#Options
#bindingName
Assigned binding name.
#Hyperdrive PostgreSQL
Note
This connector works within Cloudflare Workers with Hyperdrive enabled.
#Usage
For this connector, you need to install pg dependency:
npm i pg @types/pgUse cloudflare-hyperdrive-postgresql connector:
import { createDatabase } from "db0";
import cloudflareHyperdrivePostgresql from "db0/connectors/cloudflare-hyperdrive-postgresql";
const db = createDatabase(
cloudflareHyperdrivePostgresql({
bindingName: "POSTGRESQL",
}),
);#Options
#bindingName
Assigned binding name for your Hyperdrive instance.
#Additional Options
You can also pass PostgreSQL client configuration options (except for user, database, password, port, host, and connectionString which are managed by Hyperdrive):
const db = createDatabase(
cloudflareHyperdrivePostgresql({
bindingName: "HYPERDRIVE",
// Additional PostgreSQL options
statement_timeout: 5000,
query_timeout: 10000,
}),
);#Hyperdrive MySQL
Note
This connector works within Cloudflare Workers with Hyperdrive enabled.
#Usage
For this connector, you need to install mysql2 dependency:
npm i mysql2Use cloudflare-hyperdrive-mysql connector:
import { createDatabase } from "db0";
import cloudflareHyperdriveMysql from "db0/connectors/cloudflare-hyperdrive-mysql";
const db = createDatabase(
cloudflareHyperdriveMysql({
bindingName: "MYSQL",
}),
);#Options
#bindingName
Assigned binding name for your Hyperdrive instance.
#Additional Options
You can also pass MySQL client configuration options (except for connection/authentication options which are managed by Hyperdrive, and disableEval which is incompatible in Cloudflare Workers):
const db = createDatabase(
cloudflareHyperdriveMysql({
bindingName: "HYPERDRIVE",
// Additional MySQL options
connectTimeout: 10000,
queryTimeout: 5000,
}),
);