Skip to main content
Neon is a fully managed serverless Postgres, separating compute and storage to offer features like autoscaling, branching and bottomless storage. Neon can be used from Bun directly using the @neondatabase/serverless driver or through an ORM like Drizzle. Drizzle ORM supports both a SQL-like “query builder” API and an ORM-like Queries API. Get started by creating a project directory, initializing the directory using bun init, and installing Drizzle and the Neon serverless driver.
terminal

Create a .env.local file and add your Neon Postgres connection string to it.
.env.local

We will connect to the Neon database using the Neon serverless driver, wrapped in a Drizzle database instance.
db.ts

To see the database in action, add these lines to index.ts.
index.ts

Then run index.ts with Bun.
terminal

We can define a schema for our database using Drizzle ORM primitives. Create a schema.ts file and add this code.
schema.ts

We then use the drizzle-kit CLI to generate an initial SQL migration.

This creates a new drizzle directory containing a .sql migration file and meta directory.
File Tree

We can execute these migrations with a migrate.ts script. This script creates a new connection to the Neon database and executes all unexecuted migrations in the drizzle directory.
migrate.ts

We can run this script with bun to execute the migration.
terminal

We can now add some data to our database. Create a seed.ts file with the following contents.
seed.ts

Then run this file.
terminal

We now have a database with a schema and sample data. We can use Drizzle to query it. Replace the contents of index.ts with the following.
index.ts

Then run the file. You should see the three authors we inserted.
terminal

This example used the Neon serverless driver’s SQL-over-HTTP functionality. Neon’s serverless driver also exposes Client and Pool constructors to enable sessions, interactive transactions, and node-postgres compatibility. Refer to Neon’s documentation for a complete overview. Refer to the Drizzle website for more documentation on using the Drizzle ORM.