Switch to Drizzle
How to change the ORM to Drizzle.
Drizzle is a brilliant, type-safe ORM growing quickly in popularity. If you want to switch to Drizzle, you have two options:
- Keep Prisma and add the Drizzle API to the Prisma client. Drizzle have a great guide on how to do this.
- Go all-in and switch to Drizzle.
Here, we’ll assume you have a working Neon database and cover the second option.
1. Swap out the required dependencies in @repo/database
Uninstall the existing dependencies…
…and install the new ones:
2. Update the database connection code
Delete everything in @repo/database/index.ts
and replace it with the following:
3. Create a drizzle.config.ts
file
Next we’ll create a Drizzle configuration file, used by Drizzle Kit and contains all the information about your database connection, migration folder and schema files. Create a drizzle.config.ts
file in the packages/database
directory with the following contents:
4. Generate the schema file
Drizzle uses a schema file to define your database tables. Rather than create one from scratch, we can generate it from the existing database. In the packages/database
folder, run the following command to generate the schema file:
This should pull the schema from the database, creating a schema.ts
file containing the table definitions and some other files.
5. Update your queries
Now you can update your queries to use the Drizzle ORM.
For example, here’s how we can update the page
query in app/(authenticated)/page.tsx
:
6. Remove Prisma Studio
You can also delete the now unused Prisma Studio app located at apps/studio
:
7. Update the migration script in the root package.json
Change the migration script in the root package.json
from Prisma to Drizzle. Update the migrate
script to use Drizzle commands: