Drizzle setup guide
This guide will show you how to set up Drizzle ORM with Trigger.dev
Overview
This guide will show you how to set up Drizzle ORM with Trigger.dev, test and view an example task run.
Prerequisites
- An existing Node.js project with a
package.json
file - Ensure TypeScript is installed
- A PostgreSQL database server running locally, or accessible via a connection string
- Drizzle ORM installed and initialized in your project
- A
DATABASE_URL
environment variable set in your.env
file, pointing to your PostgreSQL database (e.g.postgresql://user:password@localhost:5432/dbname
)
Initial setup (optional)
Follow these steps if you don’t already have Trigger.dev set up in your project.
Run the CLI `init` command
The easiest way to get started is to use the CLI. It will add Trigger.dev to your existing project, create a /trigger
folder and give you an example task.
Run this command in the root of your project to get started:
It will do a few things:
- Log you into the CLI if you’re not already logged in.
- Create a
trigger.config.ts
file in the root of your project. - Ask where you’d like to create the
/trigger
directory. - Create the
/trigger
directory with an example task,/trigger/example.[ts/js]
.
Install the “Hello World” example task when prompted. We’ll use this task to test the setup.
Run the CLI `dev` command
The CLI dev
command runs a server for your tasks. It watches for changes in your /trigger
directory and communicates with the Trigger.dev platform to register your tasks, perform runs, and send data back and forth.
It can also update your @trigger.dev/*
packages to prevent version mismatches and failed deploys. You will always be prompted first.
Perform a test run using the dashboard
The CLI dev
command spits out various useful URLs. Right now we want to visit the Test page
You should see our Example task in the list
, select it. Most tasks have a “payload” which you enter in the JSON editor , but our example task doesn’t need any input.Press the “Run test” button
.View your run
Congratulations, you should see the run page which will live reload showing you the current state of the run.
If you go back to your terminal you’ll see that the dev command also shows the task status and links to the run log.
Creating a task using Drizzle and deploying it to production
The task using Drizzle
First, create a new task file in your trigger
folder.
This is a simple task that will add a new user to your database, we will call it drizzle-add-new-user
.
For this task to work correctly, you will need to have a users
table schema defined with Drizzle
that includes name
, age
and email
fields.
Configuring the build
Next, in your trigger.config.js
file, add pg
to the externals
array. pg
is a non-blocking PostgreSQL client for Node.js.
It is marked as an external to ensure that it is not bundled into the task’s bundle, and instead will be installed and loaded from node_modules
at runtime.
Deploying your task
Once the build configuration is added, you can now deploy your task using the Trigger.dev CLI.
Adding your DATABASE_URL environment variable to Trigger.dev
In your Trigger.dev dashboard sidebar click “Environment Variables”
, and then the “New environment variable” button .You can add values for your local dev environment, staging and prod. in this case we will add the DATABASE_URL
for the production environment.
Running your task
To test this task, go to the ‘test’ page in the Trigger.dev dashboard and run the task with the following payload:
Congratulations! You should now see a new completed run, and a new user with the credentials you provided should be added to your database.
Useful next steps
Was this page helpful?