<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Harsh Kushwaha</title>
    <description>The latest articles on Forem by Harsh Kushwaha (@harshkushwaha).</description>
    <link>https://forem.com/harshkushwaha</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3947520%2Fc663d297-8f6c-467b-8813-a4620c2aed27.jpg</url>
      <title>Forem: Harsh Kushwaha</title>
      <link>https://forem.com/harshkushwaha</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/harshkushwaha"/>
    <language>en</language>
    <item>
      <title>Prisma-7 A Complete Beginners Guide (With Free Cloud Database!)</title>
      <dc:creator>Harsh Kushwaha</dc:creator>
      <pubDate>Tue, 26 May 2026 02:45:36 +0000</pubDate>
      <link>https://forem.com/harshkushwaha/prisma-7-a-complete-beginners-guide-with-free-cloud-database-1lm1</link>
      <guid>https://forem.com/harshkushwaha/prisma-7-a-complete-beginners-guide-with-free-cloud-database-1lm1</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;No prior database experience needed. This guide walks you through everything — what Prisma is, how it works, how to get a free cloud database in seconds, and how to write your first queries.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What Is Prisma?
&lt;/h2&gt;

&lt;p&gt;If you've ever tried talking to a database from a Node.js app, you know how messy it can get. You write raw SQL strings, hope there are no typos, and get zero help from TypeScript. That's the old way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prisma is an ORM (Object-Relational Mapper).&lt;/strong&gt; An ORM is basically a bridge between your JavaScript/TypeScript code and your database. Instead of writing SQL like:&lt;br&gt;
&lt;code&gt;SELECT * FROM users WHERE id = 1;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You write clean TypeScript like:&lt;br&gt;
&lt;code&gt;const user = await prisma.user.findUnique({ where: { id: 1 } });&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;And Prisma handles the SQL for you. It also gives you &lt;strong&gt;full TypeScript autocomplete&lt;/strong&gt; — so your editor knows what fields exist on a &lt;code&gt;user&lt;/code&gt;, what types they are, and warns you if you make a mistake.&lt;/p&gt;

&lt;p&gt;Prisma has three main parts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Prisma ORM&lt;/strong&gt; — The core library. Reads your schema and lets you query your database with TypeScript.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prisma Client&lt;/strong&gt; — The auto-generated, type-safe code that you actually import in your app to run queries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prisma Studio&lt;/strong&gt; — A visual, browser-based UI where you can see and edit your database data without writing any code.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What Changed in Prisma 7?
&lt;/h2&gt;

&lt;p&gt;Prisma 7 (released November 2025) introduced some important changes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Driver adapters are now required.&lt;/strong&gt; In older versions, Prisma connected to databases directly. Now, you pass a "driver adapter" (like &lt;code&gt;@prisma/adapter-pg&lt;/code&gt; for PostgreSQL) to &lt;code&gt;PrismaClient&lt;/code&gt;. This gives better performance and edge runtime support.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A new &lt;code&gt;prisma.config.ts&lt;/code&gt; file&lt;/strong&gt; — Previously, all config lived inside &lt;code&gt;schema.prisma&lt;/code&gt;. Now there's a separate TypeScript config file.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ESM first&lt;/strong&gt; — Prisma 7 prefers ES Modules (the modern JavaScript module system).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free cloud database with one command&lt;/strong&gt; — You can now run &lt;code&gt;npx create-db&lt;/code&gt; (or &lt;code&gt;pnpm dlx create-db&lt;/code&gt;) and get a real hosted PostgreSQL database in seconds, no account needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Don't worry — this guide covers all of this step by step.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;You need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Node.js 18+&lt;/strong&gt; installed — Download from &lt;a href="https://nodejs.org/" rel="noopener noreferrer"&gt;nodejs.org&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;npm or pnpm&lt;/strong&gt; — npm comes with Node.js. To install pnpm: &lt;code&gt;npm install -g pnpm&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;A code editor (VS Code recommended)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's it. You don't need to install PostgreSQL locally. Prisma will give you a free cloud database.&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 1: Option A — Get a Free Cloud Database (Recommended for Beginners)
&lt;/h2&gt;

&lt;p&gt;This is the easiest path. Prisma offers a &lt;strong&gt;free hosted PostgreSQL database&lt;/strong&gt; that you can spin up with a single command — no signup, no credit card.&lt;/p&gt;

&lt;h3&gt;
  
  
  How It Works
&lt;/h3&gt;

&lt;p&gt;When you run &lt;code&gt;npx create-db&lt;/code&gt; (or &lt;code&gt;pnpm dlx create-db&lt;/code&gt;), Prisma:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Provisions a real PostgreSQL database in the cloud&lt;/li&gt;
&lt;li&gt;Gives you a connection string you paste into your project&lt;/li&gt;
&lt;li&gt;Gives you a 24-hour window to use the database for free&lt;/li&gt;
&lt;li&gt;Shows you a &lt;strong&gt;claim URL&lt;/strong&gt; — click it to keep the database permanently for free (requires a free Prisma account)&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Think of it like a test drive.&lt;/strong&gt; You get 24 hours free. If you want to keep it, you claim it — and it stays free on Prisma's generous free tier.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Step 1: Create a New Project
&lt;/h3&gt;

&lt;p&gt;Open your terminal and run:&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;p&gt;&lt;code&gt;mkdir hello-prisma&lt;br&gt;
cd hello-prisma&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now initialize a Node.js TypeScript project:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;npm:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm init -y&lt;br&gt;
npm install typescript tsx @types/node --save-dev&lt;br&gt;
npx tsc --init&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;pnpm:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pnpm init&lt;br&gt;
pnpm add typescript tsx @types/node --save-dev&lt;br&gt;
pnpm dlx tsc --init&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Install Prisma and Its Dependencies
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;npm:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm install prisma @types/pg --save-dev&lt;br&gt;
npm install @prisma/client @prisma/adapter-pg pg dotenv&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;pnpm:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pnpm add prisma @types/pg --save-dev&lt;br&gt;
pnpm add @prisma/client @prisma/adapter-pg pg dotenv&lt;/code&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Package&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;prisma&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The Prisma CLI — runs commands like &lt;code&gt;prisma init&lt;/code&gt;, &lt;code&gt;prisma migrate&lt;/code&gt;, &lt;code&gt;prisma studio&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@prisma/client&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The library you import in your app to query the database&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@prisma/adapter-pg&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Connects Prisma to PostgreSQL (required in Prisma 7)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;pg&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The actual PostgreSQL driver for Node.js&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@types/pg&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;TypeScript types for &lt;code&gt;pg&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;dotenv&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Reads your &lt;code&gt;.env&lt;/code&gt; file so Prisma can find your database URL&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Step 3: Configure ESM Support
&lt;/h3&gt;

&lt;p&gt;Prisma 7 uses modern ES Modules. You need to tell your project about this.&lt;/p&gt;

&lt;p&gt;Open &lt;code&gt;tsconfig.json&lt;/code&gt; and replace its contents with:&lt;/p&gt;

&lt;p&gt;json&lt;/p&gt;

&lt;p&gt;&lt;code&gt;{&lt;br&gt;
  "compilerOptions": {&lt;br&gt;
    "module": "ESNext",&lt;br&gt;
    "moduleResolution": "bundler",&lt;br&gt;
    "target": "ES2023",&lt;br&gt;
    "strict": true,&lt;br&gt;
    "esModuleInterop": true,&lt;br&gt;
    "ignoreDeprecations": "6.0"&lt;br&gt;
  }&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then open &lt;code&gt;package.json&lt;/code&gt; and add &lt;code&gt;"type": "module"&lt;/code&gt; inside it:&lt;/p&gt;

&lt;p&gt;json&lt;/p&gt;

&lt;p&gt;&lt;code&gt;{&lt;br&gt;
  "name": "hello-prisma",&lt;br&gt;
  "type": "module",&lt;br&gt;
  ...&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What is ESM?&lt;/strong&gt; ES Modules is the modern way JavaScript handles imports/exports (&lt;code&gt;import&lt;/code&gt;/&lt;code&gt;export&lt;/code&gt; instead of &lt;code&gt;require&lt;/code&gt;). Prisma 7 fully embraces this.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Step 4: Initialize Prisma
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;npm:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npx prisma init --output ../generated/prisma&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;pnpm:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pnpm dlx prisma init --output ../generated/prisma&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This command creates three things in your project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;prisma/schema.prisma&lt;/code&gt; — Where you define your data models (your database tables)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.env&lt;/code&gt; — Where your database connection URL goes&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;prisma.config.ts&lt;/code&gt; — The new Prisma 7 configuration file&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your &lt;code&gt;prisma.config.ts&lt;/code&gt; will look like this:&lt;/p&gt;

&lt;p&gt;typescript&lt;/p&gt;

&lt;p&gt;&lt;code&gt;import "dotenv/config";&lt;br&gt;
import { defineConfig, env } from "prisma/config";&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;export default defineConfig({&lt;br&gt;
  schema: "prisma/schema.prisma",&lt;br&gt;
  migrations: {&lt;br&gt;
    path: "prisma/migrations",&lt;br&gt;
  },&lt;br&gt;
  datasource: {&lt;br&gt;
    url: env("DATABASE_URL"),&lt;br&gt;
  },&lt;/code&gt;&lt;br&gt;
&lt;code&gt;});&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What is &lt;code&gt;prisma.config.ts&lt;/code&gt;?&lt;/strong&gt; This is new in Prisma 7. It tells Prisma where your schema is, where to store migration history, and how to connect to your database. Think of it as the "settings file" for Prisma.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Step 5: Get Your Free Cloud Database
&lt;/h3&gt;

&lt;p&gt;Now run this single command to get a free hosted PostgreSQL database:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;npm:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npx create-db&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;pnpm:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pnpm dlx create-db&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You'll see output like this in your terminal:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;┌ 🚀 Creating a Prisma Postgres database&lt;br&gt;
│&lt;br&gt;
│  Provisioning a temporary database in us-east-1...&lt;br&gt;
│  It will be automatically deleted in 24 hours, but you can claim it.&lt;br&gt;
│&lt;br&gt;
◇ Database created successfully!&lt;br&gt;
│&lt;br&gt;
● Database Connection&lt;br&gt;
│  Connection String:&lt;br&gt;
│  postgresql://&amp;lt;username&amp;gt;:&amp;lt;password&amp;gt;@db.prisma.io:5432/postgres&lt;br&gt;
│&lt;br&gt;
◆ Claim your database →&lt;br&gt;
│&lt;br&gt;
│  Want to keep your database? Claim for free:&lt;br&gt;
│  https://create-db.prisma.io?projectID=proj_...&lt;br&gt;
│&lt;br&gt;
│  Your database will be deleted on [date] if not claimed.&lt;br&gt;
└&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Copy that connection string&lt;/strong&gt; and paste it into your &lt;code&gt;.env&lt;/code&gt; file:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;DATABASE_URL="postgresql://&amp;lt;username&amp;gt;:&amp;lt;password&amp;gt;@db.prisma.io:5432/postgres"&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Claim Your Free Database (Keep It Forever)
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Copy the &lt;strong&gt;claim URL&lt;/strong&gt; from the terminal output (it looks like &lt;code&gt;https://create-db.prisma.io?projectID=proj_...&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Open it in your browser&lt;/li&gt;
&lt;li&gt;Sign in with Google or GitHub (creates a free Prisma Data Platform account)&lt;/li&gt;
&lt;li&gt;Choose a workspace and click &lt;strong&gt;Claim&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's it — your database is now permanently yours on Prisma's free tier. No credit card needed.&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 1: Option B — Use Your Own PostgreSQL Database
&lt;/h2&gt;

&lt;p&gt;If you already have a PostgreSQL database running (locally or on a service like Supabase, Railway, Neon, etc.), use this path instead.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1–4: Same as Option A
&lt;/h3&gt;

&lt;p&gt;Follow Steps 1–4 above, but when initializing Prisma, add &lt;code&gt;--datasource-provider postgresql&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;npm:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npx prisma init --datasource-provider postgresql --output ../generated/prisma&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;pnpm:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pnpm dlx prisma init --datasource-provider postgresql --output ../generated/prisma&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5: Add Your Database URL
&lt;/h3&gt;

&lt;p&gt;Skip &lt;code&gt;npx create-db&lt;/code&gt;. Instead, open &lt;code&gt;.env&lt;/code&gt; and paste your own connection string:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;DATABASE_URL="postgresql://username:password@localhost:5432/mydb?schema=public"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Replace these parts with your actual details:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Placeholder&lt;/th&gt;
&lt;th&gt;What to replace it with&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;username&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Your PostgreSQL username (often &lt;code&gt;postgres&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;password&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Your PostgreSQL password&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;localhost:5432&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Your database host and port&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mydb&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The name of your database&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Using Supabase?&lt;/strong&gt; Go to your Supabase project → Settings → Database → Connection String (URI mode). Copy and paste that.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using Neon?&lt;/strong&gt; Go to your Neon dashboard → Connection Details → paste the connection string.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Part 2: Define Your Data Model
&lt;/h2&gt;

&lt;p&gt;Now let's tell Prisma what your database should look like. Open &lt;code&gt;prisma/schema.prisma&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;You'll see it already has some boilerplate. Add your models at the bottom:&lt;/p&gt;

&lt;p&gt;prisma&lt;/p&gt;

&lt;p&gt;&lt;code&gt;generator client {&lt;br&gt;
  provider = "prisma-client"&lt;br&gt;
  output   = "../generated/prisma"&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;datasource db {&lt;br&gt;
  provider = "postgresql"&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;model User {&lt;br&gt;
  id    Int     @id @default(autoincrement())&lt;br&gt;
  email String  @unique&lt;br&gt;
  name  String?&lt;br&gt;
  posts Post[]&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;model Post {&lt;br&gt;
  id        Int     @id @default(autoincrement())&lt;br&gt;
  title     String&lt;br&gt;
  content   String?&lt;br&gt;
  published Boolean @default(false)&lt;br&gt;
  author    User    @relation(fields: [authorId], references: [id])&lt;br&gt;
  authorId  Int&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What Does This Mean?
&lt;/h3&gt;

&lt;p&gt;Think of each &lt;code&gt;model&lt;/code&gt; as a &lt;strong&gt;database table&lt;/strong&gt;. Let's break down the &lt;code&gt;User&lt;/code&gt; model:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;id Int @id @default(autoincrement())&lt;/code&gt; — A number that auto-increases (1, 2, 3...). This is the primary key that uniquely identifies each user.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;email String @unique&lt;/code&gt; — A text field that must be unique across all users (no duplicates).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;name String?&lt;/code&gt; — The &lt;code&gt;?&lt;/code&gt; means this field is &lt;strong&gt;optional&lt;/strong&gt; (can be null).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;posts Post[]&lt;/code&gt; — This user can have many posts. This is a &lt;strong&gt;relation&lt;/strong&gt; — it links User to Post.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the &lt;code&gt;Post&lt;/code&gt; model:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;author User @relation(...)&lt;/code&gt; — Each post belongs to one User.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;authorId Int&lt;/code&gt; — This stores the &lt;code&gt;id&lt;/code&gt; of the related user (the foreign key).&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Part 3: What Is a Migration?
&lt;/h2&gt;

&lt;p&gt;Before we run the migration command, let's understand what a migration actually is.&lt;/p&gt;

&lt;h3&gt;
  
  
  Migrations Explained Simply
&lt;/h3&gt;

&lt;p&gt;Imagine your database as a building. When you first create it, you start with an empty plot of land. A &lt;strong&gt;migration&lt;/strong&gt; is like a construction blueprint — it describes what changes to make to the building.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;First migration&lt;/strong&gt; — "Build the foundation, add walls, add rooms" (creates your tables)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Second migration&lt;/strong&gt; — "Add a new room on the second floor" (adds a new column or table)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Third migration&lt;/strong&gt; — "Rename the living room to the lounge" (renames a field)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every migration is saved as a file. This means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can see the full history of every change ever made to your database&lt;/li&gt;
&lt;li&gt;You can share these files with your team, so everyone's database looks the same&lt;/li&gt;
&lt;li&gt;You can replay them in production to update the live database safely&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prisma stores migration files in &lt;code&gt;prisma/migrations/&lt;/code&gt;. Each migration is a folder with a timestamp and a &lt;code&gt;.sql&lt;/code&gt; file inside it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Run Your First Migration
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;npm:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npx prisma migrate dev --name init&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;pnpm:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pnpm dlx prisma migrate dev --name init&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;--name init&lt;/code&gt; just gives this migration a human-readable name. You can call it anything that describes what changed (e.g., &lt;code&gt;--name add-user-table&lt;/code&gt; or &lt;code&gt;--name add-email-field&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;This command:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Looks at your &lt;code&gt;schema.prisma&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Compares it to the current state of your database&lt;/li&gt;
&lt;li&gt;Generates SQL to make the database match your schema&lt;/li&gt;
&lt;li&gt;Applies that SQL to your database&lt;/li&gt;
&lt;li&gt;Saves the migration file for your records&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;migrate dev&lt;/code&gt; vs &lt;code&gt;migrate deploy&lt;/code&gt;&lt;/strong&gt; — &lt;code&gt;migrate dev&lt;/code&gt; is for development (creates and applies migrations). &lt;code&gt;migrate deploy&lt;/code&gt; is for production (only applies already-existing migrations). Never run &lt;code&gt;migrate dev&lt;/code&gt; in production.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Generate the Prisma Client
&lt;/h3&gt;

&lt;p&gt;After migration, generate the Prisma Client so your TypeScript code is in sync with your schema:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;npm:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npx prisma generate&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;pnpm:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pnpm dlx prisma generate&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This creates auto-generated TypeScript code in the &lt;code&gt;generated/prisma&lt;/code&gt; folder. You don't edit this folder — Prisma regenerates it every time you run &lt;code&gt;prisma generate&lt;/code&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 4: Set Up Prisma Client in Your Code
&lt;/h2&gt;

&lt;p&gt;In Prisma 7, you need to set up a &lt;strong&gt;driver adapter&lt;/strong&gt; when creating the client. Create a new file at &lt;code&gt;lib/prisma.ts&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;typescript&lt;/p&gt;

&lt;p&gt;&lt;code&gt;import "dotenv/config";&lt;br&gt;
import { PrismaPg } from "@prisma/adapter-pg";&lt;br&gt;
import { PrismaClient } from "../generated/prisma/client";&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const connectionString =&lt;/code&gt;${process.env.DATABASE_URL}&lt;code&gt;;&lt;/code&gt;`&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const adapter = new PrismaPg({ connectionString });&lt;br&gt;
const prisma = new PrismaClient({ adapter });&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;export { prisma };&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What Is a Driver Adapter?
&lt;/h3&gt;

&lt;p&gt;Think of the driver adapter as a &lt;strong&gt;translator&lt;/strong&gt;. Prisma speaks its own query language internally. The adapter translates that into something PostgreSQL understands. In Prisma 7, this is now explicit instead of being hidden behind the scenes.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; Never create multiple instances of &lt;code&gt;PrismaClient&lt;/code&gt; in your app. Creating many instances can overload your database with too many connections. Always export one shared instance (like we did above) and import it wherever you need it.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Part 5: Write Your First Queries
&lt;/h2&gt;

&lt;p&gt;Create a file called &lt;code&gt;script.ts&lt;/code&gt; in the root of your project:&lt;/p&gt;

&lt;p&gt;typescript&lt;/p&gt;

&lt;p&gt;&lt;code&gt;import { prisma } from "./lib/prisma";&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;async function main() {&lt;br&gt;
  // --- CREATE a user with a post ---&lt;br&gt;
  const user = await prisma.user.create({&lt;br&gt;
    data: {&lt;br&gt;
      name: "Alice",&lt;br&gt;
      email: "alice@example.com",&lt;br&gt;
      posts: {&lt;br&gt;
        create: {&lt;br&gt;
          title: "My First Post",&lt;br&gt;
          content: "Hello, Prisma!",&lt;br&gt;
          published: true,&lt;br&gt;
        },&lt;br&gt;
      },&lt;br&gt;
    },&lt;br&gt;
    include: {&lt;br&gt;
      posts: true, // also return the posts&lt;br&gt;
    },&lt;br&gt;
  });&lt;br&gt;
  console.log("Created user:", user);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt; // --- READ all users ---&lt;br&gt;
  const allUsers = await prisma.user.findMany({&lt;br&gt;
    include: { posts: true },&lt;br&gt;
  });&lt;br&gt;
  console.log("All users:", JSON.stringify(allUsers, null, 2));&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;// --- UPDATE a post ---&lt;br&gt;
  const updatedPost = await prisma.post.update({&lt;br&gt;
    where: { id: user.posts[0].id },&lt;br&gt;
    data: { title: "Updated Title" },&lt;br&gt;
  });&lt;br&gt;
  console.log("Updated post:", updatedPost);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;// --- DELETE a user ---&lt;br&gt;
  // (Uncomment this if you want to test deletion)&lt;br&gt;
  // await prisma.user.delete({ where: { id: user.id } });&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;main()&lt;br&gt;
  .then(async () =&amp;gt; {&lt;br&gt;
    await prisma.$disconnect();&lt;br&gt;
  })&lt;br&gt;
  .catch(async (e) =&amp;gt; {&lt;br&gt;
    console.error(e);&lt;br&gt;
    await prisma.$disconnect();&lt;br&gt;
    process.exit(1);&lt;br&gt;
  });&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now run the script:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;npm:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npx tsx script.ts&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;pnpm:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pnpm dlx tsx script.ts&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You should see the newly created user and all users printed in your terminal. Congratulations — you just wrote to a real database with Prisma! 🎉&lt;/p&gt;

&lt;h3&gt;
  
  
  Quick Cheat Sheet: Common Prisma Queries
&lt;/h3&gt;

&lt;p&gt;typescript&lt;/p&gt;

&lt;p&gt;&lt;code&gt;// Find one by unique field&lt;br&gt;
const user = await prisma.user.findUnique({ where: { email: "alice@example.com" } });&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;// Find all&lt;br&gt;
const users = await prisma.user.findMany();&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;// Find with filter&lt;br&gt;
const publishedPosts = await prisma.post.findMany({&lt;br&gt;
  where: { published: true },&lt;br&gt;
});&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;// Create&lt;br&gt;
const newUser = await prisma.user.create({&lt;br&gt;
  data: { name: "Bob", email: "bob@example.com" },&lt;br&gt;
});&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;// Update&lt;br&gt;
const updated = await prisma.user.update({&lt;br&gt;
  where: { id: 1 },&lt;br&gt;
  data: { name: "Bobby" },&lt;br&gt;
});&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;// Delete&lt;br&gt;
await prisma.user.delete({ where: { id: 1 } });&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;// Count&lt;br&gt;
const count = await prisma.user.count();&lt;/code&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 6: Prisma Studio — See Your Data Visually
&lt;/h2&gt;

&lt;p&gt;Prisma Studio is a &lt;strong&gt;free, browser-based database viewer&lt;/strong&gt; that comes built into Prisma. You don't need to install anything extra.&lt;/p&gt;

&lt;p&gt;Run this command:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;npm or pnpm (same command):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npx prisma studio&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;It will open a tab in your browser at &lt;code&gt;http://localhost:5555&lt;/code&gt;. You'll see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All your tables listed on the left (User, Post, etc.)&lt;/li&gt;
&lt;li&gt;Click any table to see all its rows&lt;/li&gt;
&lt;li&gt;You can &lt;strong&gt;add&lt;/strong&gt;, &lt;strong&gt;edit&lt;/strong&gt;, and &lt;strong&gt;delete&lt;/strong&gt; rows directly from the UI&lt;/li&gt;
&lt;li&gt;Changes are reflected in your real database instantly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is super useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quickly checking if your queries worked&lt;/li&gt;
&lt;li&gt;Adding test data without writing code&lt;/li&gt;
&lt;li&gt;Debugging unexpected data&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Part 7: What Happens When You Update Your Schema?
&lt;/h2&gt;

&lt;p&gt;Let's say you want to add a &lt;code&gt;bio&lt;/code&gt; field to the &lt;code&gt;User&lt;/code&gt; model. Here's the workflow:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Open &lt;code&gt;prisma/schema.prisma&lt;/code&gt; and add the field:&lt;/p&gt;

&lt;p&gt;prisma&lt;/p&gt;

&lt;p&gt;&lt;code&gt;model User {&lt;br&gt;
  id    Int     @id @default(autoincrement())&lt;br&gt;
  email String  @unique&lt;br&gt;
  name  String?&lt;br&gt;
  bio   String?  // ← new field&lt;br&gt;
  posts Post[]&lt;br&gt;
}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Create a new migration:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;npm:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npx prisma migrate dev --name add-bio-to-user&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;pnpm:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pnpm dlx prisma migrate dev --name add-bio-to-user&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Regenerate the client:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;npm:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npx prisma generate&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;pnpm:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;bash&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pnpm dlx prisma generate&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now your TypeScript code will have full autocomplete for the new &lt;code&gt;bio&lt;/code&gt; field. That's the Prisma workflow — schema change → migrate → generate → done.&lt;/p&gt;




&lt;h2&gt;
  
  
  Folder Structure Overview
&lt;/h2&gt;

&lt;p&gt;After following this guide, your project will look like this:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;hello-prisma/&lt;br&gt;
├── generated/&lt;br&gt;
│   └── prisma/           ← Auto-generated Prisma Client (don't edit)&lt;br&gt;
├── lib/&lt;br&gt;
│   └── prisma.ts         ← Your Prisma Client setup&lt;br&gt;
├── prisma/&lt;br&gt;
│   ├── migrations/       ← Migration history files&lt;br&gt;
│   └── schema.prisma     ← Your data models&lt;br&gt;
├── .env                  ← Your DATABASE_URL (never commit this to git!)&lt;br&gt;
├── prisma.config.ts      ← Prisma configuration&lt;br&gt;
├── script.ts             ← Your test queries&lt;br&gt;
├── package.json&lt;br&gt;
└── tsconfig.json&lt;/code&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;⚠️ Important:&lt;/strong&gt; Add &lt;code&gt;.env&lt;/code&gt; to your &lt;code&gt;.gitignore&lt;/code&gt; file. Your database URL contains a password and should never be pushed to GitHub.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Quick Reference: All Commands
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What you want to do&lt;/th&gt;
&lt;th&gt;npm&lt;/th&gt;
&lt;th&gt;pnpm&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Initialize Prisma&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npx prisma init&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;pnpm dlx prisma init&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Get free cloud database&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npx create-db&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;pnpm dlx create-db&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Create &amp;amp; apply migration&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npx prisma migrate dev --name &amp;lt;name&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;pnpm dlx prisma migrate dev --name &amp;lt;name&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Generate Prisma Client&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npx prisma generate&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;pnpm dlx prisma generate&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open Prisma Studio&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npx prisma studio&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npx prisma studio&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Run TypeScript file&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npx tsx &amp;lt;file&amp;gt;.ts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;pnpm dlx tsx &amp;lt;file&amp;gt;.ts&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Summary — What Did We Learn?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Prisma&lt;/strong&gt; is an ORM that lets you talk to your database using TypeScript instead of raw SQL&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prisma 7&lt;/strong&gt; requires driver adapters and introduces a &lt;code&gt;prisma.config.ts&lt;/code&gt; file&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;npx create-db&lt;/code&gt;&lt;/strong&gt; gives you a free hosted PostgreSQL database in seconds — no signup needed, and you can claim it permanently for free&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prisma Schema&lt;/strong&gt; is where you define your models (database tables)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Migrations&lt;/strong&gt; are versioned snapshots of your database changes — run &lt;code&gt;prisma migrate dev&lt;/code&gt; every time your schema changes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prisma Client&lt;/strong&gt; is the auto-generated code you use to query your database — regenerate it with &lt;code&gt;prisma generate&lt;/code&gt; after each migration&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prisma Studio&lt;/strong&gt; is a visual UI to browse and edit your database data right from the browser&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;Now that you have the basics down, here's where to go:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use Prisma with Next.js&lt;/strong&gt; — Prisma works great in Next.js API routes and Server Actions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Explore filtering and pagination&lt;/strong&gt; — &lt;code&gt;where&lt;/code&gt;, &lt;code&gt;orderBy&lt;/code&gt;, &lt;code&gt;take&lt;/code&gt;, &lt;code&gt;skip&lt;/code&gt; in Prisma Client&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Learn about relations&lt;/strong&gt; — One-to-many, many-to-many, nested queries&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Try Prisma Migrate in production&lt;/strong&gt; — Use &lt;code&gt;prisma migrate deploy&lt;/code&gt; in your CI/CD pipeline&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check out the Prisma docs&lt;/strong&gt; — &lt;a href="https://www.prisma.io/docs" rel="noopener noreferrer"&gt;prisma.io/docs&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Have questions? Drop them in the comments below. Happy building!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>prisma</category>
      <category>postgres</category>
    </item>
  </channel>
</rss>
