Database

Shipped comes with a database ORM that makes it extremely easy to configure a database and interact with it (query, insert, update, delete) — Prisma.

Prisma supports multiple databases, PostgreSQL, MySQL, MariaDB, MongoDB, and others (full list here).

I always go with Postgres, because it's one of the best SQL databases in the market, open source, very popular, and very stable.

You can create a Postgres database for free using Supabase.

But these are other popular services to create a SQL database (Postgres or MySQL):

I usually go with DigitalOcean, because of its ease of use.

If you prefer a NoSQL database instead, go with MongoDB. You can create a managed MongoDB instance in the cloud using MongoDB Atlas.

Create the database using your favorite service, and get the connection string.

For Postgres, it is a string with this format

postgresql://johndoe:randompassword@host:5432/mydb?schema=public

1. Set the connection string

Paste it into the .env file as the value for the variable DATABASE_URL

The database schema (tables and columns) is defined in the file prisma/schema.prisma and Shipped already provides the base tables to handle authentication there.

2. Set the provider

Open prisma/schema.prisma and set provider = "postgresql" .

Here's the list of provider values:

3. Initiate the database

To initiate your database, open a terminal, go to the Shipped folder, and run

terminal
npm i # install all dependencies
npx prisma generate # initiate prisma
npx prisma db push # push the schema to the database

Now the database is ready to be used.

If you see this message, you are ready!

Database operations

To execute query, insert, update, delete on the database, follow this pattern.

example.ts
import { prismaClient } from "@/prisma/db";

const user = await prismaClient.user.findUnique({
  where: {
    email: "john@doe.com",
  },
});

Last updated