Skip to content

Databases

Choose the database independently from the application runtime where supported. For example, a Cloudflare Worker or Hetzner application can both use Neon Postgres.

Database Engine Connection path Setup
AWS RDS / Aurora Postgres or MySQL VPC connection; Data API on supported configurations RDS & Aurora · Aurora + Drizzle
Aurora DSQL Distributed SQL with Postgres wire compatibility IAM-authenticated connection DSQL + Drizzle
Cloudflare D1 SQLite Native Worker binding D1 + Drizzle
Durable Object storage SQLite per named object Instance storage Durable Objects
Fly Managed Postgres Postgres Private connection from a Fly Service Managed Postgres
Neon Postgres Direct or pooled URL; Hyperdrive from Workers Neon branches · Connections
PlanetScale Postgres Postgres Role connection URL; Hyperdrive from Workers PlanetScale Postgres
PlanetScale Vitess MySQL Password connection URL; Hyperdrive from Workers PlanetScale MySQL
Prisma Postgres Postgres Database connection URL Prisma Postgres
Railway Postgres Postgres Private service URL or public TCP proxy Railway Postgres
Railway MySQL MySQL Private service URL or public TCP proxy Railway MySQL

Hyperdrive pools connections to a database; it is not a database itself. The Hetzner guide hosts the application on Hetzner and the database on Neon.

Engine Typed schema queries Raw SQL
Postgres Drizzle.Postgres · Prisma ORM SQL.Postgres
MySQL Drizzle.MySQL SQL.MySQL
D1 Drizzle.D1 SQL.D1
Durable Objects Drizzle.DurableObject Instance SQL

Prisma ORM v8 requires PostgreSQL 17+. Aurora DSQL has its own authentication and SQL constraints; Postgres wire compatibility does not establish Prisma support or support for every PostgreSQL feature.

Terminal window
pnpm exec drizzle-kit generate
git add src/schema.ts drizzle.config.ts drizzle
git diff --cached
git commit -m "Add schema migration"

This example uses out: "./drizzle"; use the output directory configured by your generator and apply committed SQL through the selected database’s migration workflow. Private databases require a runner with network access.

Drizzle migrations · Handwritten SQL · Prisma contracts · Runtime integration guides