From 1ee44cf10a730a47143cbc15a6312fd9638690e4 Mon Sep 17 00:00:00 2001 From: Aman Varshney Date: Fri, 21 Aug 2026 20:01:58 +0530 Subject: [PATCH 1/6] docs: update create-prisma release tags --- .claude/skills/docs-writer/references/prisma-8.md | 2 +- .../blog/prisma-next-performance-benchmark/index.mdx | 2 +- .../index.mdx | 2 +- apps/docs/content/docs/(index)/getting-started.mdx | 4 ++-- apps/docs/content/docs/(index)/index.mdx | 8 ++++---- .../(index)/prisma-postgres/quickstart/prisma-next.mdx | 2 +- apps/docs/content/docs/(index)/v8/full-stack-tutorial.mdx | 4 ++-- apps/docs/content/docs/(index)/v8/getting-started.mdx | 4 ++-- apps/docs/content/docs/(index)/v8/index.mdx | 4 ++-- .../docs/(index)/v8/prisma-postgres/from-the-cli.mdx | 2 +- apps/docs/content/docs/(index)/v8/quickstart/mongodb.mdx | 4 ++-- .../content/docs/(index)/v8/quickstart/postgresql.mdx | 4 ++-- apps/docs/content/docs/guides/v8/frameworks/astro.mdx | 6 +++--- apps/docs/content/docs/guides/v8/frameworks/elysia.mdx | 4 ++-- apps/docs/content/docs/guides/v8/frameworks/hono.mdx | 4 ++-- apps/docs/content/docs/guides/v8/frameworks/nestjs.mdx | 4 ++-- apps/docs/content/docs/guides/v8/frameworks/nextjs.mdx | 4 ++-- apps/docs/content/docs/guides/v8/frameworks/nuxt.mdx | 6 +++--- apps/docs/content/docs/guides/v8/frameworks/sveltekit.mdx | 6 +++--- .../content/docs/guides/v8/frameworks/tanstack-start.mdx | 6 +++--- apps/docs/content/docs/guides/v8/runtimes/bun.mdx | 4 ++-- apps/docs/content/docs/guides/v8/runtimes/deno.mdx | 4 ++-- .../docs/orm/v8/contract-authoring/capabilities.mdx | 2 +- .../content/docs/orm/v8/contract-authoring/psl-syntax.mdx | 4 ++-- .../orm/v8/contract-authoring/the-contract-artifact.mdx | 2 +- .../docs/orm/v8/contract-authoring/the-data-contract.mdx | 2 +- .../v8/contract-authoring/typescript-schema-builder.mdx | 2 +- apps/docs/content/docs/orm/v8/data-modeling/index.mdx | 2 +- apps/docs/content/docs/orm/v8/data-modeling/mongodb.mdx | 2 +- .../docs/orm/v8/data-modeling/relational-databases.mdx | 2 +- .../content/docs/orm/v8/fundamentals/advanced-queries.mdx | 2 +- .../content/docs/orm/v8/fundamentals/reading-data.mdx | 2 +- .../docs/orm/v8/fundamentals/relations-and-joins.mdx | 2 +- .../content/docs/orm/v8/fundamentals/transactions.mdx | 2 +- .../content/docs/orm/v8/fundamentals/writing-data.mdx | 2 +- apps/docs/content/docs/orm/v8/index.mdx | 2 +- .../orm/v8/middleware/authoring-custom-middleware.mdx | 4 ++-- .../docs/orm/v8/middleware/how-middleware-works.mdx | 2 +- .../docs/orm/v8/migrations/applying-a-migration.mdx | 2 +- .../docs/orm/v8/migrations/editing-a-migration.mdx | 2 +- .../docs/orm/v8/migrations/generating-a-migration.mdx | 4 ++-- .../docs/orm/v8/migrations/how-migrations-work.mdx | 2 +- .../docs/orm/v8/migrations/rollbacks-and-recovery.mdx | 2 +- .../docs/orm/v8/migrations/the-migration-graph.mdx | 2 +- 44 files changed, 70 insertions(+), 70 deletions(-) diff --git a/.claude/skills/docs-writer/references/prisma-8.md b/.claude/skills/docs-writer/references/prisma-8.md index 0868e7b7f9..9ac832b175 100644 --- a/.claude/skills/docs-writer/references/prisma-8.md +++ b/.claude/skills/docs-writer/references/prisma-8.md @@ -16,7 +16,7 @@ Instead, append your section's redirect map to the commented block in `apps/docs ## Accuracy: test before you write -Every code sample must be executed against the published `@prisma/orm-*` packages before it lands, or clearly marked as conceptual. Scaffold throwaway apps with `create-prisma@next` non-interactive flags; use `bunx create-db` for PostgreSQL and `mongodb-memory-server` (replica set) for MongoDB. Key tested facts that older internal docs get wrong: +Every code sample must be executed against the published `@prisma/orm-*` packages before it lands, or clearly marked as conceptual. Scaffold throwaway apps with `create-prisma@latest` non-interactive flags; use `bunx create-db` for PostgreSQL and `mongodb-memory-server` (replica set) for MongoDB. Key tested facts that older internal docs get wrong: - PostgreSQL model access is namespace-qualified: `db.orm.public.User`, `db.sql.public.user`. MongoDB uses flat lowercase plural roots (`db.orm.users`) and documents keep `_id`. - `.update()` / `.delete()` affect one record; `updateAll` / `deleteAll` / `*Count` are the bulk forms. No `.count()` terminal; use `.aggregate(...)`. diff --git a/apps/blog/content/blog/prisma-next-performance-benchmark/index.mdx b/apps/blog/content/blog/prisma-next-performance-benchmark/index.mdx index ca7b0c7504..da25a35eaa 100644 --- a/apps/blog/content/blog/prisma-next-performance-benchmark/index.mdx +++ b/apps/blog/content/blog/prisma-next-performance-benchmark/index.mdx @@ -102,7 +102,7 @@ We've shared [our benchmark repo](https://pris.ly/pn-benchmarks), so you can run There are two ways to [get started](https://www.prisma.io/docs/v8/quickstart/postgresql). To spin up a complete template app, scaffold one with: ```shell -bunx create-prisma@next +bunx create-prisma@latest ``` This sets you up with a [Prisma Postgres](https://www.prisma.io/postgres) database and can deploy the app to [Prisma Compute](https://www.prisma.io/compute), our serverless runtime for Prisma apps, so you can see the bundle-size and cold-start benefits above end to end. diff --git a/apps/blog/content/blog/search-encrypted-data-with-prisma-next-and-cipherstash/index.mdx b/apps/blog/content/blog/search-encrypted-data-with-prisma-next-and-cipherstash/index.mdx index 40aa41a59e..ed19e89591 100644 --- a/apps/blog/content/blog/search-encrypted-data-with-prisma-next-and-cipherstash/index.mdx +++ b/apps/blog/content/blog/search-encrypted-data-with-prisma-next-and-cipherstash/index.mdx @@ -234,7 +234,7 @@ The fastest way to understand searchable encryption is to run it. You don't need ### 1. Create a Prisma 8 app ```sh -npx create-prisma@next +npx create-prisma@latest ``` This gives you a fresh project with the contract-first workflow already wired up: a `contract.prisma` describing your models, and a migration loop that plans and applies the changes needed to match it. diff --git a/apps/docs/content/docs/(index)/getting-started.mdx b/apps/docs/content/docs/(index)/getting-started.mdx index 62115e2cd2..b8def7cd09 100644 --- a/apps/docs/content/docs/(index)/getting-started.mdx +++ b/apps/docs/content/docs/(index)/getting-started.mdx @@ -6,7 +6,7 @@ metaTitle: Prisma 7 getting started metaDescription: Choose the fastest Prisma 7 setup path. Quickstarts and existing-project guides for Prisma ORM 7, Prisma Postgres, and Prisma Compute, plus an agent prompt. --- -Prisma 7 is the current generally available release of Prisma ORM. Install it with `npx prisma@latest init`. This page collects the Prisma 7 starting points: start a new project, add Prisma to an existing one, then deploy. +Prisma 7 is the current generally available release of Prisma ORM. Scaffold a new Prisma 7 app with `npx create-prisma@stable`, or add it to an existing project with `npx prisma@latest init`. This page collects the Prisma 7 starting points: start a new project, add Prisma to an existing one, then deploy. :::note @@ -57,7 +57,7 @@ Set up the Prisma 7 stack: Prisma ORM 7, Prisma Postgres, and Prisma Compute. If I have not told you which framework template to use, stop and ask. -1. Scaffold a new app non-interactively: `npx create-prisma@latest --name my-app --template [next|hono|nuxt|astro|nest|svelte|tanstack-start|elysia|turborepo] --provider postgresql --no-deploy`. Or add Prisma 7 to an existing app with `npx prisma@latest init --db`, which provisions a Prisma Postgres database; before that, check `npx @prisma/cli@latest auth whoami` and stop and ask me to run `auth login` if I am not signed in, because provisioning can open a browser. +1. Scaffold a new app non-interactively: `npx create-prisma@stable --name my-app --template [next|hono|nuxt|astro|nest|svelte|tanstack-start|elysia|turborepo] --provider postgresql --no-deploy`. Or add Prisma 7 to an existing app with `npx prisma@latest init --db`, which provisions a Prisma Postgres database; before that, check `npx @prisma/cli@latest auth whoami` and stop and ask me to run `auth login` if I am not signed in, because provisioning can open a browser. 2. From the project directory, define a small schema in `prisma/schema.prisma`, then run `npx prisma migrate dev --name init` and `npx prisma generate`. If migrate dev asks to reset the database, stop and ask me first. 3. Update the seed and app code to query the schema, and verify locally with the dev script. 4. Deploy with Prisma Compute: check `npx @prisma/cli@latest auth whoami` first. If I am not signed in, stop and ask me to run `npx @prisma/cli@latest auth login`, because that step opens a browser. Then run `npx @prisma/cli@latest app deploy --create-project my-app --env .env` so DATABASE_URL reaches the deployment, and verify the deployed URL with curl. diff --git a/apps/docs/content/docs/(index)/index.mdx b/apps/docs/content/docs/(index)/index.mdx index 85a1686bdf..9c912e3b4a 100644 --- a/apps/docs/content/docs/(index)/index.mdx +++ b/apps/docs/content/docs/(index)/index.mdx @@ -34,7 +34,7 @@ full: true The tutorial's journey, condensed: hand the prompt to your coding agent, or run the CLI steps yourself. - + } /> @@ -127,7 +127,7 @@ Create a new [framework] application with Prisma 8 against my existing PostgreSQ If I have not given you a connection string, stop and ask; do not invent one. Valid --template values: next, hono, nuxt, astro, nest, svelte, tanstack-start, elysia. -1. Scaffold: `npx create-prisma@next create my-app --template [framework] --provider postgres --yes`. +1. Scaffold: `npx create-prisma@latest create my-app --template [framework] --provider postgres --yes`. 2. Export my connection string as `DATABASE_URL` in the shell; the generated scripts read the environment variable, not `.env`. From the project directory: `npm run db:init`, then start `npm run dev` in the background and verify the sample query returns data. Sample users are seeded automatically on the app's first query; there is no separate seed script. 3. Evolve the starter contract under `src/prisma/` into my schema, then run `npm run contract:emit`, `npx prisma@next migration plan`, and `npx prisma@next migrate --yes`. diff --git a/apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-next.mdx b/apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-next.mdx index b180eae557..4417f56dfc 100644 --- a/apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-next.mdx +++ b/apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-next.mdx @@ -12,7 +12,7 @@ Create a Prisma 8 app backed by Prisma Postgres. ## Quick start ```npm -npx create-prisma@next +npx create-prisma@latest ``` Run this from a Node.js 24 or newer environment. When prompted, choose PostgreSQL. diff --git a/apps/docs/content/docs/(index)/v8/full-stack-tutorial.mdx b/apps/docs/content/docs/(index)/v8/full-stack-tutorial.mdx index 48313fb551..45a74fbe5a 100644 --- a/apps/docs/content/docs/(index)/v8/full-stack-tutorial.mdx +++ b/apps/docs/content/docs/(index)/v8/full-stack-tutorial.mdx @@ -26,7 +26,7 @@ Prefer to delegate? This is the same journey as the prompt on the [getting start ```text Create a new Hono API with Prisma 8, seed it, and deploy it to Prisma Compute. -1. Scaffold: `npx create-prisma@next create my-app --template hono --provider postgres --yes`. +1. Scaffold: `npx create-prisma@latest create my-app --template hono --provider postgres --yes`. 2. Get a database connection string: use the one I give you, or create a Prisma Postgres database with `npx create-db@latest` and show me the claim URL it prints. Export it as `DATABASE_URL` in the shell and write it to `my-app/.env` for the deploy step; the generated scripts read the environment variable, not `.env`. 3. In `my-app`, run `npm run db:init`. Sample users are seeded automatically on the app's first query; there is no separate seed script. 4. Start `npm run dev` in the background (with `DATABASE_URL` exported) and verify `curl http://localhost:3000/users` returns the seeded users. @@ -42,7 +42,7 @@ Use the installed Prisma 8 skills. One command creates the app and wires up Prisma 8: ```npm -npx create-prisma@next create my-app --template hono --provider postgres +npx create-prisma@latest create my-app --template hono --provider postgres ``` Answer the prompts for contract authoring style and package manager, then enter the project: diff --git a/apps/docs/content/docs/(index)/v8/getting-started.mdx b/apps/docs/content/docs/(index)/v8/getting-started.mdx index 085e87e55b..dc86d41a19 100644 --- a/apps/docs/content/docs/(index)/v8/getting-started.mdx +++ b/apps/docs/content/docs/(index)/v8/getting-started.mdx @@ -12,7 +12,7 @@ Start with a quickstart if you want Prisma 8 to create the app. Use the existing ## Start a new project ```npm -npx create-prisma@next +npx create-prisma@latest ``` @@ -34,7 +34,7 @@ Create a new [framework] application with Prisma 8, seed it, and run it locally. If I have not told you which framework, stop and ask before scaffolding. Valid --template values: next, hono, nuxt, astro, nest, svelte, tanstack-start, elysia. -1. Scaffold the app: `npx create-prisma@next create my-app --template [framework] --provider postgres --yes`. +1. Scaffold the app: `npx create-prisma@latest create my-app --template [framework] --provider postgres --yes`. 2. Get a database connection string: use the one I give you, or create a Prisma Postgres database with `npx create-db@latest` and show me the claim URL it prints. Export it as `DATABASE_URL` in the shell; the generated scripts read the environment variable, not `.env`. 3. From the project directory, apply the starter contract: `npm run db:init`. Sample users are seeded automatically on the app's first query; there is no separate seed script. 4. Edit the starter contract under `src/prisma/` into a small schema for my use case, then run `npm run contract:emit` and plan and apply the migration: `npx prisma@next migration plan`, then `npx prisma@next migrate --yes`. Migration planning diffs the emitted contract, so the emit step is required. diff --git a/apps/docs/content/docs/(index)/v8/index.mdx b/apps/docs/content/docs/(index)/v8/index.mdx index 09b2258574..85a20e9628 100644 --- a/apps/docs/content/docs/(index)/v8/index.mdx +++ b/apps/docs/content/docs/(index)/v8/index.mdx @@ -21,7 +21,7 @@ If you want to stay on the current generally available version of Prisma ORM, yo Prisma 8 is the recommended starting point for new projects. ```npm -npx create-prisma@next +npx create-prisma@latest ``` Start with the setup page when you want a guided first run. @@ -46,7 +46,7 @@ Create a new [framework] application with Prisma 8, seed it, and run it locally. If I have not told you which framework, stop and ask before scaffolding. Valid --template values: next, hono, nuxt, astro, nest, svelte, tanstack-start, elysia. -1. Scaffold the app: `npx create-prisma@next create my-app --template [framework] --provider postgres --yes`. +1. Scaffold the app: `npx create-prisma@latest create my-app --template [framework] --provider postgres --yes`. 2. Get a database connection string: use the one I give you, or create a Prisma Postgres database with `npx create-db@latest` and show me the claim URL it prints. Export it as `DATABASE_URL` in the shell and write it to `.env` in the project directory; the generated scripts read the environment variable, and the deploy step reads `.env`. 3. From the project directory, apply the starter contract: `npm run db:init`. Sample users are seeded automatically on the app's first query; there is no separate seed script. 4. Edit the starter contract under `src/prisma/` into a small schema for my use case, then run `npm run contract:emit` and plan and apply the migration: `npx prisma@next migration plan`, then `npx prisma@next migrate --yes`. Migration planning diffs the emitted contract, so the emit step is required. diff --git a/apps/docs/content/docs/(index)/v8/prisma-postgres/from-the-cli.mdx b/apps/docs/content/docs/(index)/v8/prisma-postgres/from-the-cli.mdx index 98625674dd..5f0715752c 100644 --- a/apps/docs/content/docs/(index)/v8/prisma-postgres/from-the-cli.mdx +++ b/apps/docs/content/docs/(index)/v8/prisma-postgres/from-the-cli.mdx @@ -12,7 +12,7 @@ Use the CLI when you want Prisma 8 and Prisma Postgres set up without leaving th ## Start a new app ```npm -npx create-prisma@next +npx create-prisma@latest ``` Choose PostgreSQL when prompted. Setup adds `prisma-next.md`, installs project-level Prisma 8 skills for your coding agent, and writes the generated scripts used below. diff --git a/apps/docs/content/docs/(index)/v8/quickstart/mongodb.mdx b/apps/docs/content/docs/(index)/v8/quickstart/mongodb.mdx index 99bda871e7..25712e2e9d 100644 --- a/apps/docs/content/docs/(index)/v8/quickstart/mongodb.mdx +++ b/apps/docs/content/docs/(index)/v8/quickstart/mongodb.mdx @@ -1,6 +1,6 @@ --- title: MongoDB -description: Create a new Prisma 8 project with MongoDB using create-prisma@next. +description: Create a new Prisma 8 project with MongoDB using create-prisma@latest. url: /v8/quickstart/mongodb metaTitle: 'Quickstart: Prisma 8 with MongoDB' metaDescription: Scaffold a Prisma 8 project with MongoDB, apply the starter migration, and run your first query. @@ -19,7 +19,7 @@ If you want to stay on the current generally available version of Prisma ORM, yo ## Quick start ```npm -npx create-prisma@next --provider mongodb +npx create-prisma@latest --provider mongodb ``` Run this from a Node.js 24 or newer environment. The command preselects MongoDB and prompts you for the contract authoring style (PSL or TypeScript) and your package manager. diff --git a/apps/docs/content/docs/(index)/v8/quickstart/postgresql.mdx b/apps/docs/content/docs/(index)/v8/quickstart/postgresql.mdx index be44d1c406..52a84824ad 100644 --- a/apps/docs/content/docs/(index)/v8/quickstart/postgresql.mdx +++ b/apps/docs/content/docs/(index)/v8/quickstart/postgresql.mdx @@ -1,6 +1,6 @@ --- title: PostgreSQL -description: Create a new Prisma 8 project with PostgreSQL using create-prisma@next. +description: Create a new Prisma 8 project with PostgreSQL using create-prisma@latest. url: /v8/quickstart/postgresql metaTitle: 'Quickstart: Prisma 8 with PostgreSQL' metaDescription: Scaffold a Prisma 8 project with PostgreSQL, initialize the database, and run your first query. @@ -19,7 +19,7 @@ If you want to stay on the current generally available version of Prisma ORM, yo ## Quick start ```npm -npx create-prisma@next --provider postgres +npx create-prisma@latest --provider postgres ``` Run this from a Node.js 24 or newer environment. The command preselects PostgreSQL and prompts you for the contract authoring style (PSL or TypeScript) and your package manager. diff --git a/apps/docs/content/docs/guides/v8/frameworks/astro.mdx b/apps/docs/content/docs/guides/v8/frameworks/astro.mdx index a380e5e773..7da1ec91b0 100644 --- a/apps/docs/content/docs/guides/v8/frameworks/astro.mdx +++ b/apps/docs/content/docs/guides/v8/frameworks/astro.mdx @@ -17,7 +17,7 @@ Every command below was run end to end against a live [Prisma Postgres](/postgre One command scaffolds the project with Prisma 8 wired in: ```npm -npx create-prisma@next create my-astro-app --template astro --provider postgres +npx create-prisma@latest create my-astro-app --template astro --provider postgres ``` Answer the prompts, then export `DATABASE_URL` in your shell before running the database scripts. Need a database? `npx create-db@latest` prints a Prisma Postgres connection string. @@ -36,7 +36,7 @@ Prefer to delegate this guide? Copy the prompt and hand it to your coding agent: ```text Create a new Astro app with Prisma 8, seed it, and deploy it to Prisma Compute. -1. Scaffold: `npx create-prisma@next create my-astro-app --template astro --provider postgres --yes`. Then get a database connection string: use the one I give you, or create a Prisma Postgres database with `npx create-db@latest` and show me the claim URL it prints. Export it as `DATABASE_URL` in the shell and write it to `my-astro-app/.env` for the deploy step; the generated scripts read the environment variable, not `.env`. +1. Scaffold: `npx create-prisma@latest create my-astro-app --template astro --provider postgres --yes`. Then get a database connection string: use the one I give you, or create a Prisma Postgres database with `npx create-db@latest` and show me the claim URL it prints. Export it as `DATABASE_URL` in the shell and write it to `my-astro-app/.env` for the deploy step; the generated scripts read the environment variable, not `.env`. 2. In `my-astro-app`, run `npm run db:init` with `DATABASE_URL` exported. Sample users are seeded automatically on the app's first query; there is no separate seed script. 3. Start `npm run dev` in the background, wait until it reports ready, verify http://localhost:4321 lists the seeded users and `curl http://localhost:4321/api/users` returns them as JSON, then stop the dev server. 4. Prepare the deploy build: run `npm install @astrojs/node@^10`, then set `output: "server"` and `adapter: node({ mode: "standalone" })` in `astro.config.mjs`, following https://www.prisma.io/docs/guides/v8/frameworks/astro.md. @@ -50,7 +50,7 @@ Use the installed Prisma 8 skills. ## 1. Scaffold and enter the project ```npm -npx create-prisma@next create my-astro-app --template astro --provider postgres +npx create-prisma@latest create my-astro-app --template astro --provider postgres cd my-astro-app ``` diff --git a/apps/docs/content/docs/guides/v8/frameworks/elysia.mdx b/apps/docs/content/docs/guides/v8/frameworks/elysia.mdx index 3f0188730f..c2ea5856df 100644 --- a/apps/docs/content/docs/guides/v8/frameworks/elysia.mdx +++ b/apps/docs/content/docs/guides/v8/frameworks/elysia.mdx @@ -26,7 +26,7 @@ Prefer to delegate this guide? Copy the prompt and hand it to your coding agent: ```text Verify `bun --version` first; if Bun is missing, stop and ask. Create a new Elysia API with Prisma 8, seed it, and deploy it to Prisma Compute. -1. Scaffold: `bunx create-prisma@next create my-elysia-api --template elysia --provider postgres --yes`. Then get a database connection string: use the one I give you, or create a Prisma Postgres database with `npx create-db@latest` and show me the claim URL it prints. Export it as `DATABASE_URL` in the shell and write it to `my-elysia-api/.env` for the deploy step; the generated scripts read the environment variable, not `.env`. +1. Scaffold: `bunx create-prisma@latest create my-elysia-api --template elysia --provider postgres --yes`. Then get a database connection string: use the one I give you, or create a Prisma Postgres database with `npx create-db@latest` and show me the claim URL it prints. Export it as `DATABASE_URL` in the shell and write it to `my-elysia-api/.env` for the deploy step; the generated scripts read the environment variable, not `.env`. 2. In `my-elysia-api`, run `bun run db:init` with `DATABASE_URL` exported. Sample users are seeded automatically on the app's first query; there is no separate seed script. 3. Start `bun run dev` in the background, wait until it reports ready, verify `curl http://localhost:3000/users` returns the seeded users, then stop the dev server. 4. Deploy: check `npx @prisma/cli@latest auth whoami`; if I am not signed in, stop and ask me to run `npx @prisma/cli@latest auth login`. Then run `npx @prisma/cli@latest app deploy --create-project my-elysia-api --env .env --framework bun --entry src/index.ts` and verify the live URL's /users endpoint. @@ -39,7 +39,7 @@ Use the installed Prisma 8 skills. ## 1. Scaffold the project ```bash -bunx create-prisma@next create my-elysia-api --template elysia --provider postgres +bunx create-prisma@latest create my-elysia-api --template elysia --provider postgres ``` Pick your database at the prompt. The template generates an Elysia server in `src/index.ts` with `GET /` and `GET /users` routes, the Prisma 8 setup in `src/prisma/`, and package scripts for the database steps. diff --git a/apps/docs/content/docs/guides/v8/frameworks/hono.mdx b/apps/docs/content/docs/guides/v8/frameworks/hono.mdx index 37acb887d0..f20c148272 100644 --- a/apps/docs/content/docs/guides/v8/frameworks/hono.mdx +++ b/apps/docs/content/docs/guides/v8/frameworks/hono.mdx @@ -26,7 +26,7 @@ Prefer to delegate this guide? Copy the prompt and hand it to your coding agent: ```text Create a new Hono API with Prisma 8, seed it, and deploy it to Prisma Compute. -1. Scaffold: `npx create-prisma@next create my-hono-api --template hono --provider postgres --yes`. Then get a database connection string: use the one I give you, or create a Prisma Postgres database with `npx create-db@latest` and show me the claim URL it prints. Export it as `DATABASE_URL` in the shell and write it to `my-hono-api/.env` for the deploy step; the generated scripts read the environment variable, not `.env`. +1. Scaffold: `npx create-prisma@latest create my-hono-api --template hono --provider postgres --yes`. Then get a database connection string: use the one I give you, or create a Prisma Postgres database with `npx create-db@latest` and show me the claim URL it prints. Export it as `DATABASE_URL` in the shell and write it to `my-hono-api/.env` for the deploy step; the generated scripts read the environment variable, not `.env`. 2. In `my-hono-api`, run `npm run db:init` with `DATABASE_URL` exported. Sample users are seeded automatically on the app's first query; there is no separate seed script. 3. Start `npm run dev` in the background, wait until it reports ready, verify `curl http://localhost:3000/users` returns the seeded users, then stop the dev server. 4. Add a POST /users route that creates a user from the request body, following https://www.prisma.io/docs/guides/v8/frameworks/hono.md, restart the dev server, and verify it with curl. @@ -40,7 +40,7 @@ Use the installed Prisma 8 skills. ## 1. Scaffold the project ```bash -bunx create-prisma@next create my-hono-api --template hono --provider postgres +bunx create-prisma@latest create my-hono-api --template hono --provider postgres ``` Pick your contract authoring style and package manager at the prompts. The template generates a Hono server in `src/index.ts` with two routes (`GET /` and `GET /users`), the Prisma 8 setup in `src/prisma/`, and package scripts for the database steps. diff --git a/apps/docs/content/docs/guides/v8/frameworks/nestjs.mdx b/apps/docs/content/docs/guides/v8/frameworks/nestjs.mdx index 6fa45fd403..b16cfa0078 100644 --- a/apps/docs/content/docs/guides/v8/frameworks/nestjs.mdx +++ b/apps/docs/content/docs/guides/v8/frameworks/nestjs.mdx @@ -26,7 +26,7 @@ Prefer to delegate this guide? Copy the prompt and hand it to your coding agent: ```text Create a new NestJS API with Prisma 8, seed it, and deploy it to Prisma Compute. -1. Scaffold: `npx create-prisma@next create my-nest-api --template nest --provider postgres --yes`. Then get a database connection string: use the one I give you, or create a Prisma Postgres database with `npx create-db@latest` and show me the claim URL it prints. Export it as `DATABASE_URL` in the shell and write it to `my-nest-api/.env` for the deploy step; the generated scripts read the environment variable, not `.env`. +1. Scaffold: `npx create-prisma@latest create my-nest-api --template nest --provider postgres --yes`. Then get a database connection string: use the one I give you, or create a Prisma Postgres database with `npx create-db@latest` and show me the claim URL it prints. Export it as `DATABASE_URL` in the shell and write it to `my-nest-api/.env` for the deploy step; the generated scripts read the environment variable, not `.env`. 2. In `my-nest-api`, run `npm run db:init` with `DATABASE_URL` exported. Sample users are seeded automatically on the app's first query; there is no separate seed script. 3. Start `npm run dev` in the background, wait until it reports ready, and verify `curl http://localhost:3000/users` returns the seeded users; stop the dev server once verified. If it returns a 500 and the server logs `Cannot read properties of undefined (reading 'findAll')`, add explicit injection tokens: `@Inject(UsersService)` on the constructor parameter in `src/users.controller.ts` and `@Inject(PrismaService)` in `src/users.service.ts` (import `Inject` from `@nestjs/common`), then retry. 4. Deploy: check `npx @prisma/cli@latest auth whoami`; if I am not signed in, stop and ask me to run `npx @prisma/cli@latest auth login`. Then run `npx @prisma/cli@latest app deploy --create-project my-nest-api --env .env` and verify the live URL's /users endpoint. @@ -39,7 +39,7 @@ Use the installed Prisma 8 skills. ## 1. Scaffold and enter the project ```npm -npx create-prisma@next create my-nest-api --template nest --provider postgres +npx create-prisma@latest create my-nest-api --template nest --provider postgres cd my-nest-api ``` diff --git a/apps/docs/content/docs/guides/v8/frameworks/nextjs.mdx b/apps/docs/content/docs/guides/v8/frameworks/nextjs.mdx index 42a0f9cf4c..6334485c12 100644 --- a/apps/docs/content/docs/guides/v8/frameworks/nextjs.mdx +++ b/apps/docs/content/docs/guides/v8/frameworks/nextjs.mdx @@ -26,7 +26,7 @@ Prefer to delegate this guide? Copy the prompt and hand it to your coding agent: ```text Create a new Next.js app with Prisma 8, seed it, and deploy it to Prisma Compute. -1. Scaffold: `npx create-prisma@next create my-app --template next --provider postgres --yes`. Then get a database connection string: use the one I give you, or create a Prisma Postgres database with `npx create-db@latest` and show me the claim URL it prints. Export it as `DATABASE_URL` in the shell and write it to `my-app/.env` for the deploy step; the generated scripts read the environment variable, not `.env`. +1. Scaffold: `npx create-prisma@latest create my-app --template next --provider postgres --yes`. Then get a database connection string: use the one I give you, or create a Prisma Postgres database with `npx create-db@latest` and show me the claim URL it prints. Export it as `DATABASE_URL` in the shell and write it to `my-app/.env` for the deploy step; the generated scripts read the environment variable, not `.env`. 2. In `my-app`, run `npm run db:init` with `DATABASE_URL` exported. Sample users are seeded automatically on the app's first query; there is no separate seed script. 3. Start `npm run dev` in the background, wait until it reports ready, verify http://localhost:3000 renders the seeded users, then stop the dev server. 4. Set `output: "standalone"` in `next.config.ts`; Prisma Compute deploys the standalone server that `next build` emits. @@ -40,7 +40,7 @@ Use the installed Prisma 8 skills. ## 1. Scaffold and enter the project ```npm -npx create-prisma@next create my-app --template next --provider postgres +npx create-prisma@latest create my-app --template next --provider postgres cd my-app ``` diff --git a/apps/docs/content/docs/guides/v8/frameworks/nuxt.mdx b/apps/docs/content/docs/guides/v8/frameworks/nuxt.mdx index 8d3843cabd..95ca561b6a 100644 --- a/apps/docs/content/docs/guides/v8/frameworks/nuxt.mdx +++ b/apps/docs/content/docs/guides/v8/frameworks/nuxt.mdx @@ -17,7 +17,7 @@ Every command below was run end to end against a live [Prisma Postgres](/postgre One command scaffolds the project with Prisma 8 wired in: ```npm -npx create-prisma@next create my-app --template nuxt --provider postgres +npx create-prisma@latest create my-app --template nuxt --provider postgres ``` Answer the prompts, then export `DATABASE_URL` in your shell before running the database scripts. Need a database? `npx create-db@latest` prints a Prisma Postgres connection string. @@ -36,7 +36,7 @@ Prefer to delegate this guide? Copy the prompt and hand it to your coding agent: ```text Create a new Nuxt app with Prisma 8, seed it, and deploy it to Prisma Compute. -1. Scaffold: `npx create-prisma@next create my-app --template nuxt --provider postgres --yes`. Then get a database connection string: use the one I give you, or create a Prisma Postgres database with `npx create-db@latest` and show me the claim URL it prints. Export it as `DATABASE_URL` in the shell and write it to `my-app/.env` for the deploy step; the generated scripts read the environment variable, not `.env`. +1. Scaffold: `npx create-prisma@latest create my-app --template nuxt --provider postgres --yes`. Then get a database connection string: use the one I give you, or create a Prisma Postgres database with `npx create-db@latest` and show me the claim URL it prints. Export it as `DATABASE_URL` in the shell and write it to `my-app/.env` for the deploy step; the generated scripts read the environment variable, not `.env`. 2. In `my-app`, run `npm run db:init` with `DATABASE_URL` exported. Sample users are seeded automatically on the app's first query; there is no separate seed script. 3. Start `npm run dev` in the background, wait until it reports ready, verify that http://localhost:3000 lists the seeded users and `curl http://localhost:3000/api/users` returns them, then stop the dev server. 4. Deploy: check `npx @prisma/cli@latest auth whoami`; if I am not signed in, stop and ask me to run `npx @prisma/cli@latest auth login`. Then run `npx @prisma/cli@latest app deploy --create-project my-app --env .env` and verify the live URL's /api/users endpoint. @@ -49,7 +49,7 @@ Use the installed Prisma 8 skills. ## 1. Scaffold and enter the project ```npm -npx create-prisma@next create my-app --template nuxt --provider postgres +npx create-prisma@latest create my-app --template nuxt --provider postgres cd my-app ``` diff --git a/apps/docs/content/docs/guides/v8/frameworks/sveltekit.mdx b/apps/docs/content/docs/guides/v8/frameworks/sveltekit.mdx index 83a4130010..5b41b51381 100644 --- a/apps/docs/content/docs/guides/v8/frameworks/sveltekit.mdx +++ b/apps/docs/content/docs/guides/v8/frameworks/sveltekit.mdx @@ -17,7 +17,7 @@ Every command below was run end to end against a live [Prisma Postgres](/postgre One command scaffolds the project with Prisma 8 wired in: ```npm -npx create-prisma@next create my-app --template svelte --provider postgres +npx create-prisma@latest create my-app --template svelte --provider postgres ``` Answer the prompts, then export `DATABASE_URL` in your shell before running the database scripts. Need a database? `npx create-db@latest` prints a Prisma Postgres connection string. @@ -36,7 +36,7 @@ Prefer to delegate this guide? Copy the prompt and hand it to your coding agent: ```text Create a new SvelteKit app with Prisma 8, seed it, and verify the page renders. -1. Scaffold: `npx create-prisma@next create my-app --template svelte --provider postgres --yes`. Then get a database connection string: use the one I give you, or create a Prisma Postgres database with `npx create-db@latest` and show me the claim URL it prints. Export it as `DATABASE_URL` in the shell and write it to `my-app/.env` for the deploy step; the generated scripts read the environment variable, not `.env`. +1. Scaffold: `npx create-prisma@latest create my-app --template svelte --provider postgres --yes`. Then get a database connection string: use the one I give you, or create a Prisma Postgres database with `npx create-db@latest` and show me the claim URL it prints. Export it as `DATABASE_URL` in the shell and write it to `my-app/.env` for the deploy step; the generated scripts read the environment variable, not `.env`. 2. In `my-app`, run `npm run db:init` with `DATABASE_URL` exported. Sample users are seeded automatically on the app's first query; there is no separate seed script. 3. Do not deploy to Prisma Compute; it does not support SvelteKit yet. Start `npm run dev` in the background, wait until it reports ready, verify http://localhost:5173 lists the three seeded users, then stop the dev server, following https://www.prisma.io/docs/guides/v8/frameworks/sveltekit.md. @@ -48,7 +48,7 @@ Use the installed Prisma 8 skills. ## 1. Scaffold and enter the project ```npm -npx create-prisma@next create my-app --template svelte --provider postgres +npx create-prisma@latest create my-app --template svelte --provider postgres cd my-app ``` diff --git a/apps/docs/content/docs/guides/v8/frameworks/tanstack-start.mdx b/apps/docs/content/docs/guides/v8/frameworks/tanstack-start.mdx index e294d69168..3a897b799e 100644 --- a/apps/docs/content/docs/guides/v8/frameworks/tanstack-start.mdx +++ b/apps/docs/content/docs/guides/v8/frameworks/tanstack-start.mdx @@ -17,7 +17,7 @@ Every command below was run end to end against a live [Prisma Postgres](/postgre One command scaffolds the project with Prisma 8 wired in: ```npm -npx create-prisma@next create my-app --template tanstack-start --provider postgres +npx create-prisma@latest create my-app --template tanstack-start --provider postgres ``` Answer the prompts, then export `DATABASE_URL` in your shell before running the database scripts. Need a database? `npx create-db@latest` prints a Prisma Postgres connection string. @@ -36,7 +36,7 @@ Prefer to delegate this guide? Copy the prompt and hand it to your coding agent: ```text Create a new TanStack Start app with Prisma 8, seed it, and deploy it to Prisma Compute. -1. Scaffold: `npx create-prisma@next create my-app --template tanstack-start --provider postgres --yes`. Then get a database connection string: use the one I give you, or create a Prisma Postgres database with `npx create-db@latest` and show me the claim URL it prints. Export it as `DATABASE_URL` in the shell and write it to `my-app/.env` for the deploy step; the generated scripts read the environment variable, not `.env`. +1. Scaffold: `npx create-prisma@latest create my-app --template tanstack-start --provider postgres --yes`. Then get a database connection string: use the one I give you, or create a Prisma Postgres database with `npx create-db@latest` and show me the claim URL it prints. Export it as `DATABASE_URL` in the shell and write it to `my-app/.env` for the deploy step; the generated scripts read the environment variable, not `.env`. 2. In `my-app`, run `npm run db:init` with `DATABASE_URL` exported. Sample users are seeded automatically on the app's first query; there is no separate seed script. 3. Start `npm run dev` in the background, wait until it reports ready, verify http://localhost:3000 renders the three seeded users, then stop the dev server. 4. Prepare the deploy build: install `nitro` and enable the `nitro()` Vite plugin for builds only, following https://www.prisma.io/docs/guides/v8/frameworks/tanstack-start.md. @@ -50,7 +50,7 @@ Use the installed Prisma 8 skills. ## 1. Scaffold and enter the project ```npm -npx create-prisma@next create my-app --template tanstack-start --provider postgres +npx create-prisma@latest create my-app --template tanstack-start --provider postgres cd my-app ``` diff --git a/apps/docs/content/docs/guides/v8/runtimes/bun.mdx b/apps/docs/content/docs/guides/v8/runtimes/bun.mdx index c066555b7b..4d3f955b32 100644 --- a/apps/docs/content/docs/guides/v8/runtimes/bun.mdx +++ b/apps/docs/content/docs/guides/v8/runtimes/bun.mdx @@ -26,7 +26,7 @@ Prefer to delegate this guide? Copy the prompt and hand it to your coding agent: ```text Create a new Bun app with Prisma 8, run a first typed query, and deploy it to Prisma Compute. -1. Scaffold: `bunx create-prisma@next create my-bun-app --template minimal --provider postgres --package-manager bun --yes`. Then get a database connection string: use the one I give you, or create a Prisma Postgres database with `bunx create-db` and show me the claim URL it prints. Export it as `DATABASE_URL` in the shell and write it to `my-bun-app/.env` for the deploy step; the generated scripts read the environment variable, not `.env`. +1. Scaffold: `bunx create-prisma@latest create my-bun-app --template minimal --provider postgres --package-manager bun --yes`. Then get a database connection string: use the one I give you, or create a Prisma Postgres database with `bunx create-db` and show me the claim URL it prints. Export it as `DATABASE_URL` in the shell and write it to `my-bun-app/.env` for the deploy step; the generated scripts read the environment variable, not `.env`. 2. In `my-bun-app`, run `bun run contract:emit`, then `bun run db:init`, with `DATABASE_URL` exported. 3. Replace `src/index.ts` with a script that creates a user and reads all users back via `db.orm.public.User`, following https://www.prisma.io/docs/guides/v8/runtimes/bun.md, and verify `bun run dev` prints the created user. 4. Add `src/server.ts` with a `Bun.serve` server exposing GET /users, and verify `curl http://localhost:3000/users` returns the users. @@ -42,7 +42,7 @@ Use the installed Prisma 8 skills. Create the project with `create-prisma`. Pick Bun as the package manager when prompted, or pass everything up front: ```bash -bunx create-prisma@next create my-bun-app --template minimal --provider postgres --package-manager bun +bunx create-prisma@latest create my-bun-app --template minimal --provider postgres --package-manager bun ``` Answer the prompts for contract authoring style. The scaffold sets up `src/prisma/` with a starter schema and installs dependencies with Bun. diff --git a/apps/docs/content/docs/guides/v8/runtimes/deno.mdx b/apps/docs/content/docs/guides/v8/runtimes/deno.mdx index d0c8ffc5fa..c52a67d11f 100644 --- a/apps/docs/content/docs/guides/v8/runtimes/deno.mdx +++ b/apps/docs/content/docs/guides/v8/runtimes/deno.mdx @@ -26,7 +26,7 @@ Prefer to delegate this guide? Copy the prompt and hand it to your coding agent: ```text Create a new Prisma 8 project on Deno, seed it, and run a first typed query. -1. Scaffold: `deno run -A npm:create-prisma@next create my-deno-app --template minimal --provider postgres --package-manager deno --yes`. The scaffold provisions a temporary Prisma Postgres database and writes `DATABASE_URL` and a `CLAIM_URL` to `.env`; show me the claim URL so I can keep the database. If I give you a connection string, put it in `.env` as `DATABASE_URL` instead. +1. Scaffold: `deno run -A npm:create-prisma@latest create my-deno-app --template minimal --provider postgres --package-manager deno --yes`. The scaffold provisions a temporary Prisma Postgres database and writes `DATABASE_URL` and a `CLAIM_URL` to `.env`; show me the claim URL so I can keep the database. If I give you a connection string, put it in `.env` as `DATABASE_URL` instead. 2. In `my-deno-app`, run `deno install`, then `deno task contract:emit` and `deno task db:init`. Do not call `npm:prisma@next` directly; the unified CLI does not load under Deno yet, and the generated tasks use the working `npm:prisma-next` entry point. 3. Run `deno task db:seed`. If seeding fails with `Cannot read properties of undefined (reading 'where')`, change `db.orm.User` to `db.orm.public.User` in `src/prisma/seed.ts`, `src/prisma/users.ts`, and `src/index.ts`, then rerun. 4. Replace `src/index.ts` with a script that creates a user and reads all users back, following https://www.prisma.io/docs/guides/v8/runtimes/deno.md. Keep the `.ts` extension on relative imports. Verify `deno task dev` prints the created user and the user count. @@ -42,7 +42,7 @@ Use the installed Prisma 8 skills. `create-prisma` supports Deno as a package manager choice: ```bash -deno run -A npm:create-prisma@next create my-deno-app --template minimal --provider postgres --package-manager deno +deno run -A npm:create-prisma@latest create my-deno-app --template minimal --provider postgres --package-manager deno ``` By default the scaffold provisions a temporary Prisma Postgres database and writes `DATABASE_URL` and a `CLAIM_URL` to `.env`; open the claim URL within 24 hours to keep the database in your account, or replace `DATABASE_URL` with your own connection string. The generated `package.json` scripts wrap every command in `deno run -A --env-file=.env`, so environment variables load without a dotenv import. diff --git a/apps/docs/content/docs/orm/v8/contract-authoring/capabilities.mdx b/apps/docs/content/docs/orm/v8/contract-authoring/capabilities.mdx index 0b09c21f20..2682200169 100644 --- a/apps/docs/content/docs/orm/v8/contract-authoring/capabilities.mdx +++ b/apps/docs/content/docs/orm/v8/contract-authoring/capabilities.mdx @@ -87,7 +87,7 @@ Extensions are the main source of capabilities beyond the core. [Using extension ## Prompt your coding agent -Projects scaffolded with `create-prisma@next` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. The `prisma-8` skill covers this page. Ask your agent to: +Projects scaffolded with `create-prisma@latest` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. The `prisma-8` skill covers this page. Ask your agent to: - "Which capabilities does our contract currently require, and which package provides each?" - "Add pgvector to the project and confirm the capability shows up in the emitted contract." diff --git a/apps/docs/content/docs/orm/v8/contract-authoring/psl-syntax.mdx b/apps/docs/content/docs/orm/v8/contract-authoring/psl-syntax.mdx index b4bda11b0c..e908bc0264 100644 --- a/apps/docs/content/docs/orm/v8/contract-authoring/psl-syntax.mdx +++ b/apps/docs/content/docs/orm/v8/contract-authoring/psl-syntax.mdx @@ -128,7 +128,7 @@ export default defineConfig({ }); ``` -Scaffolded projects (`npx create-prisma@next`) already contain this wiring and a starter schema. +Scaffolded projects (`npx create-prisma@latest`) already contain this wiring and a starter schema. ## Models and fields @@ -319,7 +319,7 @@ The syntax above declares relations. For which shape to choose and which side ow ## Prompt your coding agent -Projects scaffolded with `create-prisma@next` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. The `prisma-8` skill covers this page. Ask your agent to: +Projects scaffolded with `create-prisma@latest` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. The `prisma-8` skill covers this page. Ask your agent to: - "Using the prisma-8 skill, add a Status enum stored as text and use it on the Order model." - "Add a one-to-many between User and Post with the foreign key on Post." diff --git a/apps/docs/content/docs/orm/v8/contract-authoring/the-contract-artifact.mdx b/apps/docs/content/docs/orm/v8/contract-authoring/the-contract-artifact.mdx index be4df33497..1982656a75 100644 --- a/apps/docs/content/docs/orm/v8/contract-authoring/the-contract-artifact.mdx +++ b/apps/docs/content/docs/orm/v8/contract-authoring/the-contract-artifact.mdx @@ -153,7 +153,7 @@ Commit the artifacts alongside the source. They contain structure only, no data ## Prompt your coding agent -Projects scaffolded with `create-prisma@next` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent; the `prisma-8` skill covers this page. Ask your agent to: +Projects scaffolded with `create-prisma@latest` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent; the `prisma-8` skill covers this page. Ask your agent to: - "Explain the difference between contract.json and contract.d.ts in this project." - "Re-emit the contract and show me what changed in the artifact." diff --git a/apps/docs/content/docs/orm/v8/contract-authoring/the-data-contract.mdx b/apps/docs/content/docs/orm/v8/contract-authoring/the-data-contract.mdx index 3639e8b3ec..263d7eb42e 100644 --- a/apps/docs/content/docs/orm/v8/contract-authoring/the-data-contract.mdx +++ b/apps/docs/content/docs/orm/v8/contract-authoring/the-data-contract.mdx @@ -96,7 +96,7 @@ It contains no rows, no credentials, and no connection details, so committing th ## Prompt your coding agent -Projects scaffolded with `create-prisma@next` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. The `prisma-8` skill covers this page. Ask your agent to: +Projects scaffolded with `create-prisma@latest` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. The `prisma-8` skill covers this page. Ask your agent to: - "Using the prisma-8 skill, explain what our contract.json currently declares." - "Add an Invoice model to the contract and emit it." diff --git a/apps/docs/content/docs/orm/v8/contract-authoring/typescript-schema-builder.mdx b/apps/docs/content/docs/orm/v8/contract-authoring/typescript-schema-builder.mdx index 655b1ec8cd..3e54fd6600 100644 --- a/apps/docs/content/docs/orm/v8/contract-authoring/typescript-schema-builder.mdx +++ b/apps/docs/content/docs/orm/v8/contract-authoring/typescript-schema-builder.mdx @@ -272,7 +272,7 @@ TypeScript and [PSL](/orm/v8/contract-authoring/psl-syntax) authoring emit the s ## Prompt your coding agent -Projects scaffolded with `create-prisma@next` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. The `prisma-8` skill covers this page. Ask your agent to: +Projects scaffolded with `create-prisma@latest` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. The `prisma-8` skill covers this page. Ask your agent to: - "Convert this contract.prisma to the TypeScript schema builder." - "Using the prisma-8 skill, add a unique index to the email field in our TypeScript schema." diff --git a/apps/docs/content/docs/orm/v8/data-modeling/index.mdx b/apps/docs/content/docs/orm/v8/data-modeling/index.mdx index a8f552bc9f..2b288a7e68 100644 --- a/apps/docs/content/docs/orm/v8/data-modeling/index.mdx +++ b/apps/docs/content/docs/orm/v8/data-modeling/index.mdx @@ -234,7 +234,7 @@ How each shape is stored, and which model should hold the connecting field, is w ## Prompt your coding agent -Projects scaffolded with `create-prisma@next` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent; the `prisma-8` skill covers contract authoring. Prompts that map to each section: +Projects scaffolded with `create-prisma@latest` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent; the `prisma-8` skill covers contract authoring. Prompts that map to each section: - "Using the prisma-8 skill, add a Product model with a surrogate id and a unique sku field." - "Add a Country reference table keyed by its ISO code." diff --git a/apps/docs/content/docs/orm/v8/data-modeling/mongodb.mdx b/apps/docs/content/docs/orm/v8/data-modeling/mongodb.mdx index 408dd837bd..e6521f3f2b 100644 --- a/apps/docs/content/docs/orm/v8/data-modeling/mongodb.mdx +++ b/apps/docs/content/docs/orm/v8/data-modeling/mongodb.mdx @@ -154,7 +154,7 @@ Use one polymorphic collection when the variants are handled together far more t ## Prompt your coding agent -Projects scaffolded with `create-prisma@next` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent; the `prisma-8` skill covers document modeling. Prompts that map to each section: +Projects scaffolded with `create-prisma@latest` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent; the `prisma-8` skill covers document modeling. Prompts that map to each section: - "Using the prisma-8 skill, add an embedded Address type to the User model." - "Cart items are always read with the cart. Model them as an embedded list." diff --git a/apps/docs/content/docs/orm/v8/data-modeling/relational-databases.mdx b/apps/docs/content/docs/orm/v8/data-modeling/relational-databases.mdx index d0af27b814..bfa318c53c 100644 --- a/apps/docs/content/docs/orm/v8/data-modeling/relational-databases.mdx +++ b/apps/docs/content/docs/orm/v8/data-modeling/relational-databases.mdx @@ -201,7 +201,7 @@ Use polymorphism when you query the variants together (one feed of tasks, one st ## Prompt your coding agent -Projects scaffolded with `create-prisma@next` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent; the `prisma-8` skill covers relation modeling. Prompts that map to each section: +Projects scaffolded with `create-prisma@latest` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent; the `prisma-8` skill covers relation modeling. Prompts that map to each section: - "Using the prisma-8 skill, add a one-to-many between User and Post with the foreign key on Post." - "Make the Profile relation one-to-one by adding a unique constraint to its foreign key." diff --git a/apps/docs/content/docs/orm/v8/fundamentals/advanced-queries.mdx b/apps/docs/content/docs/orm/v8/fundamentals/advanced-queries.mdx index 0634e8c76e..69949b1090 100644 --- a/apps/docs/content/docs/orm/v8/fundamentals/advanced-queries.mdx +++ b/apps/docs/content/docs/orm/v8/fundamentals/advanced-queries.mdx @@ -232,7 +232,7 @@ Plans execute through `db.runtime().execute(plan)` on PostgreSQL and `(await db. ## Prompt your coding agent -Projects scaffolded with `create-prisma@next` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent; the `prisma-8` skill covers both builders and the choice between them and the ORM API. Prompts that map to each section: +Projects scaffolded with `create-prisma@latest` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent; the `prisma-8` skill covers both builders and the choice between them and the ORM API. Prompts that map to each section: - "Using the prisma-8 skill, write a SQL builder plan for the top 10 authors by post count." - "This report needs post and author columns in one flat result. Build the join with the SQL query builder." diff --git a/apps/docs/content/docs/orm/v8/fundamentals/reading-data.mdx b/apps/docs/content/docs/orm/v8/fundamentals/reading-data.mdx index 7f8cd09da7..80f8b6e7f4 100644 --- a/apps/docs/content/docs/orm/v8/fundamentals/reading-data.mdx +++ b/apps/docs/content/docs/orm/v8/fundamentals/reading-data.mdx @@ -373,7 +373,7 @@ const posts = await db.orm.public.Post.all(); ## Prompt your coding agent -Projects scaffolded with `create-prisma@next` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent; the `prisma-8` skill covers everything on this page. Prompts that map to each section: +Projects scaffolded with `create-prisma@latest` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent; the `prisma-8` skill covers everything on this page. Prompts that map to each section: - "Using the prisma-8 skill, write a query that returns the 20 newest published posts." - "Add a case-insensitive title search to the posts query, using the field-proxy operators." diff --git a/apps/docs/content/docs/orm/v8/fundamentals/relations-and-joins.mdx b/apps/docs/content/docs/orm/v8/fundamentals/relations-and-joins.mdx index bcbc476e75..09b80cc5eb 100644 --- a/apps/docs/content/docs/orm/v8/fundamentals/relations-and-joins.mdx +++ b/apps/docs/content/docs/orm/v8/fundamentals/relations-and-joins.mdx @@ -220,7 +220,7 @@ The relationship shapes above apply to reference-style relations on both databas ## Prompt your coding agent -Projects scaffolded with `create-prisma@next` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent; the `prisma-8` skill covers both relation queries and the relation fields in your schema. Prompts that map to each section: +Projects scaffolded with `create-prisma@latest` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent; the `prisma-8` skill covers both relation queries and the relation fields in your schema. Prompts that map to each section: - "Using the prisma-8 skill, add a one-to-one Profile model with a unique foreign key to User." - "Using the prisma-8 skill, fetch each user with their five newest posts in one query." diff --git a/apps/docs/content/docs/orm/v8/fundamentals/transactions.mdx b/apps/docs/content/docs/orm/v8/fundamentals/transactions.mdx index 496d6e97ec..6d094066c3 100644 --- a/apps/docs/content/docs/orm/v8/fundamentals/transactions.mdx +++ b/apps/docs/content/docs/orm/v8/fundamentals/transactions.mdx @@ -172,7 +172,7 @@ You get the same atomicity, plus something the array form never had: one query's ## Prompt your coding agent -Projects scaffolded with `create-prisma@next` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent; the `prisma-8` skill covers transactions. Prompts that map to each section: +Projects scaffolded with `create-prisma@latest` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent; the `prisma-8` skill covers transactions. Prompts that map to each section: - "Using the prisma-8 skill, wrap this signup flow (create user, create welcome post) in a db.transaction so both writes commit together." - "Check this transaction callback for queries that use db instead of tx." diff --git a/apps/docs/content/docs/orm/v8/fundamentals/writing-data.mdx b/apps/docs/content/docs/orm/v8/fundamentals/writing-data.mdx index 138e508126..896f55e53a 100644 --- a/apps/docs/content/docs/orm/v8/fundamentals/writing-data.mdx +++ b/apps/docs/content/docs/orm/v8/fundamentals/writing-data.mdx @@ -311,7 +311,7 @@ Prisma 7 supported `$transaction([query1, query2])`. Prisma 8 does not: there is ## Prompt your coding agent -Projects scaffolded with `create-prisma@next` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent; the `prisma-8` skill covers everything on this page. Prompts that map to each section: +Projects scaffolded with `create-prisma@latest` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent; the `prisma-8` skill covers everything on this page. Prompts that map to each section: - "Using the prisma-8 skill, add a signup function that creates a User and returns only its id and email." - "Write an upsert that creates a user by email or updates their name if they exist." diff --git a/apps/docs/content/docs/orm/v8/index.mdx b/apps/docs/content/docs/orm/v8/index.mdx index 97b991a53c..2126f1442b 100644 --- a/apps/docs/content/docs/orm/v8/index.mdx +++ b/apps/docs/content/docs/orm/v8/index.mdx @@ -41,7 +41,7 @@ Prisma 8 ships first-class support for **PostgreSQL** (the primary target, on tr Scaffold a new project in one command: ```npm -npx create-prisma@next +npx create-prisma@latest ``` diff --git a/apps/docs/content/docs/orm/v8/middleware/authoring-custom-middleware.mdx b/apps/docs/content/docs/orm/v8/middleware/authoring-custom-middleware.mdx index bb31ff2272..3c0bf74768 100644 --- a/apps/docs/content/docs/orm/v8/middleware/authoring-custom-middleware.mdx +++ b/apps/docs/content/docs/orm/v8/middleware/authoring-custom-middleware.mdx @@ -20,7 +20,7 @@ This entire guide was run end to end on a fresh `create-prisma` project against - A Prisma 8 project with a working `src/prisma/db.ts`. The [PostgreSQL quickstart](/v8/quickstart/postgresql) sets one up in a few minutes: ```bash -npx create-prisma@next --provider postgres +npx create-prisma@latest --provider postgres cd my-app npm run db:init ``` @@ -219,7 +219,7 @@ One honest note on `ctx.log`: the `postgres(...)` client does not expose a way t ## Prompt your coding agent -Projects scaffolded with `create-prisma@next` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. Prompts that map to this guide: +Projects scaffolded with `create-prisma@latest` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. Prompts that map to this guide: - "Write a Prisma 8 middleware that logs every query slower than 250ms, and register it before budgets." - "Add a beforeCompile middleware that scopes every SELECT on the user table to the current tenant." diff --git a/apps/docs/content/docs/orm/v8/middleware/how-middleware-works.mdx b/apps/docs/content/docs/orm/v8/middleware/how-middleware-works.mdx index b0e94168ee..06130e01b1 100644 --- a/apps/docs/content/docs/orm/v8/middleware/how-middleware-works.mdx +++ b/apps/docs/content/docs/orm/v8/middleware/how-middleware-works.mdx @@ -107,7 +107,7 @@ When the driver itself fails, `afterExecute` still runs on every middleware with ## Prompt your coding agent -Projects scaffolded with `create-prisma@next` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. Prompts that map to this page: +Projects scaffolded with `create-prisma@latest` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. Prompts that map to this page: - "Register the lints and budgets middleware on our Prisma 8 client with a 10k row budget." - "Add the cache middleware and opt the dashboard queries in with a 60 second TTL." diff --git a/apps/docs/content/docs/orm/v8/migrations/applying-a-migration.mdx b/apps/docs/content/docs/orm/v8/migrations/applying-a-migration.mdx index ec3994dd0f..5c9a68c9b4 100644 --- a/apps/docs/content/docs/orm/v8/migrations/applying-a-migration.mdx +++ b/apps/docs/content/docs/orm/v8/migrations/applying-a-migration.mdx @@ -171,7 +171,7 @@ Apply, targeting, preview, refs, the ledger, and multi-space runs all work today ## Prompt your coding agent -Projects scaffolded with `create-prisma@next` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. Ask your agent to: +Projects scaffolded with `create-prisma@latest` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. Ask your agent to: - "Check migration status against staging and apply whatever is pending." - "Preview what `migrate --to prod` would run and summarize the destructive operations." diff --git a/apps/docs/content/docs/orm/v8/migrations/editing-a-migration.mdx b/apps/docs/content/docs/orm/v8/migrations/editing-a-migration.mdx index 7ebec6bdc8..007a896a56 100644 --- a/apps/docs/content/docs/orm/v8/migrations/editing-a-migration.mdx +++ b/apps/docs/content/docs/orm/v8/migrations/editing-a-migration.mdx @@ -223,7 +223,7 @@ The typed-builder wiring and the raw Mongo command shapes above are the current ## Prompt your coding agent -Projects scaffolded with `create-prisma@next` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. Ask your agent to: +Projects scaffolded with `create-prisma@latest` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. Ask your agent to: - "Fill in the placeholder in the latest migration: backfill `displayName` with the user's email prefix." - "Add a data transform to this migration that normalizes existing `phone` values before the unique constraint." diff --git a/apps/docs/content/docs/orm/v8/migrations/generating-a-migration.mdx b/apps/docs/content/docs/orm/v8/migrations/generating-a-migration.mdx index 3c040398f3..fbbcdd5e1c 100644 --- a/apps/docs/content/docs/orm/v8/migrations/generating-a-migration.mdx +++ b/apps/docs/content/docs/orm/v8/migrations/generating-a-migration.mdx @@ -9,7 +9,7 @@ badge: release-candidate This tutorial takes a contract change from your editor to a planned migration on disk. Planning is **fully offline**. `migration plan` reads your emitted contract and your existing migrations, and it never connects to a database. That means you can plan on a plane, in CI, or in a sandbox with no credentials. -Start from a minimal project. `npx create-prisma@next` scaffolds one. +Start from a minimal project. `npx create-prisma@latest` scaffolds one. ## Your first migration @@ -206,7 +206,7 @@ Planning covers tables, columns, indexes, constraints, and the backfill scaffold ## Prompt your coding agent -Projects scaffolded with `create-prisma@next` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. Ask your agent to: +Projects scaffolded with `create-prisma@latest` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. Ask your agent to: - "Add a required `displayName` field to User, emit the contract, and plan the migration." - "Plan a migration named `add-orders-table` and show me its DDL preview before I commit it." diff --git a/apps/docs/content/docs/orm/v8/migrations/how-migrations-work.mdx b/apps/docs/content/docs/orm/v8/migrations/how-migrations-work.mdx index d0c3a37200..3758cb3ae2 100644 --- a/apps/docs/content/docs/orm/v8/migrations/how-migrations-work.mdx +++ b/apps/docs/content/docs/orm/v8/migrations/how-migrations-work.mdx @@ -232,7 +232,7 @@ Prisma 8 is a Release Candidate and migrations are one of its newest parts. The ## Prompt your coding agent -Projects scaffolded with `create-prisma@next` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. Ask your agent to: +Projects scaffolded with `create-prisma@latest` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. Ask your agent to: - "Add a `phone` field to the User model and plan a migration for it." - "Show me the pending migrations and what SQL they will run." diff --git a/apps/docs/content/docs/orm/v8/migrations/rollbacks-and-recovery.mdx b/apps/docs/content/docs/orm/v8/migrations/rollbacks-and-recovery.mdx index fe9020a172..1d83f92142 100644 --- a/apps/docs/content/docs/orm/v8/migrations/rollbacks-and-recovery.mdx +++ b/apps/docs/content/docs/orm/v8/migrations/rollbacks-and-recovery.mdx @@ -110,7 +110,7 @@ Reverse planning (`--to ^`), destructive-operation warnings, resumable re-r ## Prompt your coding agent -Projects scaffolded with `create-prisma@next` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. Ask your agent to: +Projects scaffolded with `create-prisma@latest` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. Ask your agent to: - "Plan a rollback for the last migration and show me its destructive operations before I decide." - "This migrate run failed. Read the error, fix the migration, and re-run it." diff --git a/apps/docs/content/docs/orm/v8/migrations/the-migration-graph.mdx b/apps/docs/content/docs/orm/v8/migrations/the-migration-graph.mdx index 75bf90e4d8..0b2b376fc0 100644 --- a/apps/docs/content/docs/orm/v8/migrations/the-migration-graph.mdx +++ b/apps/docs/content/docs/orm/v8/migrations/the-migration-graph.mdx @@ -192,7 +192,7 @@ The graph was designed with these in mind; the commands have not shipped yet. Ea ## Prompt your coding agent -Projects scaffolded with `create-prisma@next` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. Ask your agent to: +Projects scaffolded with `create-prisma@latest` install [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. Ask your agent to: - "Draw the migration graph for this project and explain the branches." - "Which contract state is the `prod` ref pointing at, and is the database there yet?" From ef2754e2081b51824041b74f6f33d2965116309a Mon Sep 17 00:00:00 2001 From: Aman Varshney Date: Fri, 21 Aug 2026 20:08:39 +0530 Subject: [PATCH 2/6] docs: align create prisma command aliases --- .../create-prisma-deploy-prisma-compute/hero.svg | 2 +- .../index.mdx | 2 +- .../index.mdx | 2 +- .../index.mdx | 2 +- .../client-extensions-preview-8t3w27xkrxxn/index.mdx | 2 +- .../create-prisma-deploy-prisma-compute/index.mdx | 4 ++-- .../content/blog/introducing-create-prisma/index.mdx | 12 ++++++------ .../index.mdx | 2 +- .../index.mdx | 2 +- .../index.mdx | 2 +- .../nestjs-prisma-rest-api-7D056s1BmOL0/index.mdx | 2 +- .../nestjs-prisma-validation-7D056s1kOla1/index.mdx | 2 +- .../blog/prisma-data-proxy-xb16ba0p21/index.mdx | 2 +- .../index.mdx | 4 ++-- .../blog/prisma-studio-migrations-view/index.mdx | 6 +++--- .../blog/testing-series-1-8eRB5p0Y8o/index.mdx | 2 +- .../blog/testing-series-2-xPhjjmIEsM/index.mdx | 2 +- .../blog/testing-series-3-aBUyF8nxAn/index.mdx | 2 +- .../blog/testing-series-4-OVXtDis201/index.mdx | 2 +- .../blog/testing-series-5-xWogenROXm/index.mdx | 2 +- .../imgs/hero.svg | 2 +- apps/docs/content/docs/guides/frameworks/astro.mdx | 2 +- apps/docs/content/docs/guides/frameworks/elysia.mdx | 2 +- apps/docs/content/docs/guides/frameworks/hono.mdx | 2 +- apps/docs/content/docs/guides/frameworks/nestjs.mdx | 2 +- apps/docs/content/docs/guides/frameworks/nextjs.mdx | 2 +- apps/docs/content/docs/guides/frameworks/nuxt.mdx | 2 +- .../content/docs/guides/frameworks/sveltekit.mdx | 2 +- .../docs/guides/frameworks/tanstack-start.mdx | 2 +- apps/docs/content/docs/guides/index.mdx | 2 +- apps/docs/content/docs/studio/prisma-next.mdx | 6 +++--- apps/site/src/app/stack/journey/journey-steps.ts | 2 +- apps/site/src/app/stack/page.tsx | 2 +- 33 files changed, 44 insertions(+), 44 deletions(-) diff --git a/.claude/skills/content-create-hero-image/assets/examples/create-prisma-deploy-prisma-compute/hero.svg b/.claude/skills/content-create-hero-image/assets/examples/create-prisma-deploy-prisma-compute/hero.svg index d5785f0d4e..6a34091ae4 100644 --- a/.claude/skills/content-create-hero-image/assets/examples/create-prisma-deploy-prisma-compute/hero.svg +++ b/.claude/skills/content-create-hero-image/assets/examples/create-prisma-deploy-prisma-compute/hero.svg @@ -50,7 +50,7 @@ - $ bun create prisma@latest + $ bun create prisma@stable diff --git a/apps/blog/content/blog/advanced-database-schema-management-with-atlas-and-prisma-orm/index.mdx b/apps/blog/content/blog/advanced-database-schema-management-with-atlas-and-prisma-orm/index.mdx index 3fd4e993ec..23db307dc2 100644 --- a/apps/blog/content/blog/advanced-database-schema-management-with-atlas-and-prisma-orm/index.mdx +++ b/apps/blog/content/blog/advanced-database-schema-management-with-atlas-and-prisma-orm/index.mdx @@ -394,4 +394,4 @@ In this tutorial, you learned how to integrate Atlas into an existing Prisma ORM Check out the [example repo](https://github.com/prisma/prisma-atlas/) if you want to have a quick look at the final result of this tutorial. -Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea). +Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@latest` or read the [Prisma 8 docs](https://pris.ly/pn-ea). diff --git a/apps/blog/content/blog/announcing-typedsql-make-your-raw-sql-queries-type-safe-with-prisma-orm/index.mdx b/apps/blog/content/blog/announcing-typedsql-make-your-raw-sql-queries-type-safe-with-prisma-orm/index.mdx index 961a56d668..79a866aaed 100644 --- a/apps/blog/content/blog/announcing-typedsql-make-your-raw-sql-queries-type-safe-with-prisma-orm/index.mdx +++ b/apps/blog/content/blog/announcing-typedsql-make-your-raw-sql-queries-type-safe-with-prisma-orm/index.mdx @@ -260,4 +260,4 @@ No. TypedSQL types each query at generate time, so the SQL text must be static. TypedSQL gives you raw SQL with the type safety of the Prisma Client API: write a query in `prisma/sql`, run `npx prisma generate --sql` against a live database, and call the generated function with `$queryRawTyped` for fully typed results. On Prisma ORM 7 it stays behind the `typedSql` Preview flag, works with the `prisma-client` generator's custom output directory, and fits any PostgreSQL or modern MySQL setup, including [Prisma Postgres](https://www.prisma.io/docs/postgres). The [TypedSQL documentation](https://www.prisma.io/docs/orm/prisma-client/using-raw-sql/typedsql) covers the full reference, including argument annotations and database support. -Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea). +Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@latest` or read the [Prisma 8 docs](https://pris.ly/pn-ea). diff --git a/apps/blog/content/blog/caching-database-queries-with-prisma-accelerate/index.mdx b/apps/blog/content/blog/caching-database-queries-with-prisma-accelerate/index.mdx index 5bc9107d79..29167e3c38 100644 --- a/apps/blog/content/blog/caching-database-queries-with-prisma-accelerate/index.mdx +++ b/apps/blog/content/blog/caching-database-queries-with-prisma-accelerate/index.mdx @@ -92,4 +92,4 @@ Caching remains one of the genuinely hard problems of software engineering. Cach With caching built into [Prisma Postgres](https://www.prisma.io/docs/postgres/database/caching) on a per-query basis, the implementation part stops being the hard part, and you can spend the time on the decisions instead. Create a database with `npx create-db`, add a `cacheStrategy` to your hottest query, and measure the difference. -Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea). +Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@latest` or read the [Prisma 8 docs](https://pris.ly/pn-ea). diff --git a/apps/blog/content/blog/client-extensions-preview-8t3w27xkrxxn/index.mdx b/apps/blog/content/blog/client-extensions-preview-8t3w27xkrxxn/index.mdx index e24bf3555f..068de3efe8 100644 --- a/apps/blog/content/blog/client-extensions-preview-8t3w27xkrxxn/index.mdx +++ b/apps/blog/content/blog/client-extensions-preview-8t3w27xkrxxn/index.mdx @@ -1280,4 +1280,4 @@ No. Calling `$extends` returns a new, extended client instance and leaves the or Extensions are how you teach Prisma Client the conventions of your codebase: the 15 patterns above are starting points, and the [examples repo](https://github.com/prisma/prisma-client-extensions) keeps runnable versions of each. They work the same against any Postgres, including a [Prisma Postgres](https://www.prisma.io/docs/postgres) database you can create in seconds with `npx create-db`. -Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea). +Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@latest` or read the [Prisma 8 docs](https://pris.ly/pn-ea). diff --git a/apps/blog/content/blog/create-prisma-deploy-prisma-compute/index.mdx b/apps/blog/content/blog/create-prisma-deploy-prisma-compute/index.mdx index 84e7b9ae0c..557149471e 100644 --- a/apps/blog/content/blog/create-prisma-deploy-prisma-compute/index.mdx +++ b/apps/blog/content/blog/create-prisma-deploy-prisma-compute/index.mdx @@ -7,7 +7,7 @@ authors: metaTitle: "Deploy Prisma Apps with create-prisma" metaDescription: "create-prisma now scaffolds Compute-ready Prisma apps with prisma.compute.ts, compute:deploy, Prisma Postgres, and Prisma Skills add-ons." heroImagePath: "/create-prisma-deploy-prisma-compute/imgs/hero.svg" -heroImageAlt: "Scaffold a deploy-ready app with create-prisma: bun create prisma@latest, then choose a template, generate a typed config, and add Postgres and Skills." +heroImageAlt: "Scaffold a deploy-ready app with create-prisma: bun create prisma@stable, then choose a template, generate a typed config, and add Postgres and Skills." metaImagePath: "/create-prisma-deploy-prisma-compute/imgs/meta.png" excerpt: "create-prisma now scaffolds Compute-ready Prisma apps with prisma.compute.ts, compute:deploy, Prisma Postgres, and Prisma Skills add-ons." series: prisma-compute @@ -29,7 +29,7 @@ Run the initializer, pick a Compute-ready template, and the generated project ca - a `compute:deploy` script for later deploys ```bash -bun create prisma@latest +bun create prisma@stable ``` ![Terminal output from create-prisma showing Prisma Compute setup](/create-prisma-deploy-prisma-compute/imgs/create-prisma-terminal.png) diff --git a/apps/blog/content/blog/introducing-create-prisma/index.mdx b/apps/blog/content/blog/introducing-create-prisma/index.mdx index 2c99b1af42..bbe1fe9613 100644 --- a/apps/blog/content/blog/introducing-create-prisma/index.mdx +++ b/apps/blog/content/blog/introducing-create-prisma/index.mdx @@ -23,7 +23,7 @@ You know what you want to build, so you pick a framework and a database, but bef Today, we're introducing `create-prisma`, a CLI that creates a new app with Prisma already set up. ```bash -npm create prisma@latest +npm create prisma@stable ``` Pick a template, pick a database, and start with a working Prisma app. @@ -39,7 +39,7 @@ Next.js, Nuxt, SvelteKit, Hono, NestJS, TanStack Start, and Turborepo do not all Create a Hono API with PostgreSQL: ```bash -npm create prisma@latest --name my-api --template hono --provider postgresql +npm create prisma@stable --name my-api --template hono --provider postgresql cd my-api npm run dev ``` @@ -47,7 +47,7 @@ npm run dev Or create a Turborepo where Prisma lives in a shared database package: ```bash -npm create prisma@latest --name my-monorepo --template turborepo --provider postgresql +npm create prisma@stable --name my-monorepo --template turborepo --provider postgresql ``` Templates are available for Hono, Elysia, NestJS, Next.js, SvelteKit, Astro, Nuxt, TanStack Start, and Turborepo. @@ -70,7 +70,7 @@ By default, it also includes a small `User` model, seed data, and an example que If you choose PostgreSQL and do not provide a `DATABASE_URL`, `create-prisma` can create a Prisma Postgres database for you: ```bash -npm create prisma@latest \ +npm create prisma@stable \ --name my-app \ --template next \ --provider postgresql \ @@ -86,7 +86,7 @@ Databases created this way are temporary for 24 hours until claimed. That makes `create-prisma` can also set up Prisma tools for your editor and AI coding agents: ```bash -npm create prisma@latest \ +npm create prisma@stable \ --name my-app \ --template next \ --provider postgresql \ @@ -100,7 +100,7 @@ These add-ons can install Prisma skills for coding agents, configure the Prisma Try `create-prisma` today: ```bash -npm create prisma@latest +npm create prisma@stable ``` You can find the project on GitHub at [github.com/prisma/create-prisma](https://pris.ly/create-prisma-gh). diff --git a/apps/blog/content/blog/nestjs-prisma-authentication-7D056s1s0k3l/index.mdx b/apps/blog/content/blog/nestjs-prisma-authentication-7D056s1s0k3l/index.mdx index 26507a1b49..d344b0c9a3 100644 --- a/apps/blog/content/blog/nestjs-prisma-authentication-7D056s1s0k3l/index.mdx +++ b/apps/blog/content/blog/nestjs-prisma-authentication-7D056s1s0k3l/index.mdx @@ -845,4 +845,4 @@ In this chapter, you learned how to implement JWT authentication in your NestJS This wraps up the series. Across five chapters, you built a REST API with NestJS 11 and Prisma ORM 7, added input validation, error handling, relational data and authentication; every piece verified on the current stack. From here, good next steps are [The Ultimate Guide to Testing with Prisma](https://www.prisma.io/blog/series/testing-with-prisma) for test coverage, the [Prisma Migrate docs](https://www.prisma.io/docs/orm/prisma-migrate/getting-started) for evolving your schema, and Prisma Postgres as the database for your production deployment. -Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea). +Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@latest` or read the [Prisma 8 docs](https://pris.ly/pn-ea). diff --git a/apps/blog/content/blog/nestjs-prisma-error-handling-7D056s1kOop2/index.mdx b/apps/blog/content/blog/nestjs-prisma-error-handling-7D056s1kOop2/index.mdx index 145c27a4a4..fb43f1cac1 100644 --- a/apps/blog/content/blog/nestjs-prisma-error-handling-7D056s1kOop2/index.mdx +++ b/apps/blog/content/blog/nestjs-prisma-error-handling-7D056s1kOop2/index.mdx @@ -404,4 +404,4 @@ In this chapter you learned how to handle Prisma errors, like the `P2002` unique In the [next part](/nestjs-prisma-relational-data-7D056s1kOabc) of this series, you will add a `User` model and learn how to handle relational data in your API. If you want to go deeper on the Prisma side first, the [Prisma getting started guide](https://www.prisma.io/docs/getting-started), [Prisma Migrate docs](https://www.prisma.io/docs/orm/prisma-migrate/getting-started), and Prisma Postgres are the best next resources for taking the app from tutorial to production-ready workflow. -Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea). +Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@latest` or read the [Prisma 8 docs](https://pris.ly/pn-ea). diff --git a/apps/blog/content/blog/nestjs-prisma-relational-data-7D056s1kOabc/index.mdx b/apps/blog/content/blog/nestjs-prisma-relational-data-7D056s1kOabc/index.mdx index ed7c0abe36..e2f97cc928 100644 --- a/apps/blog/content/blog/nestjs-prisma-relational-data-7D056s1kOabc/index.mdx +++ b/apps/blog/content/blog/nestjs-prisma-relational-data-7D056s1kOabc/index.mdx @@ -921,4 +921,4 @@ In this chapter, you learned how to model relational data in a NestJS applicatio In the [next part](/nestjs-prisma-authentication-7D056s1s0k3l) of this series, you will secure these endpoints by adding JWT authentication to the API, and replace the plain text passwords with properly hashed ones. If you want to go deeper on relations first, the [Prisma relations docs](https://www.prisma.io/docs/orm/prisma-schema/data-model/relations) cover one-to-many and other relation types in depth, and Prisma Postgres is an easy way to stand up the database layer for follow-on work. -Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea). +Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@latest` or read the [Prisma 8 docs](https://pris.ly/pn-ea). diff --git a/apps/blog/content/blog/nestjs-prisma-rest-api-7D056s1BmOL0/index.mdx b/apps/blog/content/blog/nestjs-prisma-rest-api-7D056s1BmOL0/index.mdx index d69aea3ca8..1b75a61a58 100644 --- a/apps/blog/content/blog/nestjs-prisma-rest-api-7D056s1BmOL0/index.mdx +++ b/apps/blog/content/blog/nestjs-prisma-rest-api-7D056s1BmOL0/index.mdx @@ -1025,4 +1025,4 @@ One of the main takeaways from this tutorial is how easy it is to build a REST A In the [next part](/nestjs-prisma-validation-7D056s1kOla1) of this series, you will add input validation and transformation to this API. If you want to go deeper on the Prisma side first, start with the [Prisma getting started guide](https://www.prisma.io/docs/getting-started), learn more about [Prisma Migrate](https://www.prisma.io/docs/orm/prisma-migrate/getting-started), or create a Prisma Postgres database for your next NestJS project. -Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea). +Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@latest` or read the [Prisma 8 docs](https://pris.ly/pn-ea). diff --git a/apps/blog/content/blog/nestjs-prisma-validation-7D056s1kOla1/index.mdx b/apps/blog/content/blog/nestjs-prisma-validation-7D056s1kOla1/index.mdx index 407c3bf780..d763cd0d82 100644 --- a/apps/blog/content/blog/nestjs-prisma-validation-7D056s1kOla1/index.mdx +++ b/apps/blog/content/blog/nestjs-prisma-validation-7D056s1kOla1/index.mdx @@ -385,4 +385,4 @@ You might have noticed that NestJS heavily relies on decorators. This is a very In the [next part](/nestjs-prisma-error-handling-7D056s1kOop2) of this series, you will learn how to handle errors in a NestJS and Prisma application, including the database errors that validation alone can't catch. If you want to go deeper on the Prisma side first, the [Prisma getting started guide](https://www.prisma.io/docs/getting-started) and [Prisma Migrate docs](https://www.prisma.io/docs/orm/prisma-migrate/getting-started) are good next steps, and Prisma Postgres is an easy way to stand up the database layer for follow-on work. -Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea). +Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@latest` or read the [Prisma 8 docs](https://pris.ly/pn-ea). diff --git a/apps/blog/content/blog/prisma-data-proxy-xb16ba0p21/index.mdx b/apps/blog/content/blog/prisma-data-proxy-xb16ba0p21/index.mdx index daf1886605..c6fbd037d1 100644 --- a/apps/blog/content/blog/prisma-data-proxy-xb16ba0p21/index.mdx +++ b/apps/blog/content/blog/prisma-data-proxy-xb16ba0p21/index.mdx @@ -119,4 +119,4 @@ You need pooling, but not necessarily a separate pooler. Prisma Postgres include -Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea). +Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@latest` or read the [Prisma 8 docs](https://pris.ly/pn-ea). diff --git a/apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/index.mdx b/apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/index.mdx index 345a644447..66ce1d8150 100644 --- a/apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/index.mdx +++ b/apps/blog/content/blog/prisma-next-early-access-write-your-contract-prompt-your-agent-ship-your-app/index.mdx @@ -44,7 +44,7 @@ If you've ever picked up a new framework, you know how long it takes to climb a One command scaffolds a new project with Prisma 8, including a [family of skills](https://www.prisma.io/docs/ai/tools/skills) which make your agent an instant expert. ```bash -npm create prisma@next +npm create prisma@latest ``` The learning curve disappears and you can start working on something meaningful straight away. Like sitting beside someone who knows their stuff, learn the framework by watching your agent execute your instructions. When you have a question, ask your agent. It knows the answer. @@ -199,7 +199,7 @@ Prisma 8 brings **Prisma's world-class DX to your agent**, so you can focus on b To [try it today](https://www.prisma.io/docs/v8/quickstart/postgresql) in a fresh project, run: ```bash -npm create prisma@next +npm create prisma@latest ``` To add Prisma 8 to an existing project, run: diff --git a/apps/blog/content/blog/prisma-studio-migrations-view/index.mdx b/apps/blog/content/blog/prisma-studio-migrations-view/index.mdx index 260b3bc8b2..370b9bf395 100644 --- a/apps/blog/content/blog/prisma-studio-migrations-view/index.mdx +++ b/apps/blog/content/blog/prisma-studio-migrations-view/index.mdx @@ -50,13 +50,13 @@ Here is the workflow, from an empty directory. The screenshots in this post come ### Step 1: Create a project ```bash -npm create prisma@next +npm create prisma@latest ``` Answer the prompts (PostgreSQL, PSL, your package manager) or skip them: ```bash -npm create prisma@next -- my-app --yes --provider postgres --authoring psl --template minimal +npm create prisma@latest -- my-app --yes --provider postgres --authoring psl --template minimal ``` This scaffolds a contract at `src/prisma/contract.prisma`. Then create a [Prisma Postgres](https://www.prisma.io/docs/postgres) database with `npx create-db@latest` and export the connection string it prints as `DATABASE_URL` (the CLI reads the environment variable, not `.env`). The database is temporary for 24 hours; `create-db` also prints a claim URL to keep it. @@ -237,7 +237,7 @@ From the database, not from your repo. Prisma 8 writes one row per applied migra ## Try it ```bash -npm create prisma@next +npm create prisma@latest ``` Model something, apply two migrations, and open **Migrations**. Tell us what you'd want in the timeline next on [Discord](https://pris.ly/discord). diff --git a/apps/blog/content/blog/testing-series-1-8eRB5p0Y8o/index.mdx b/apps/blog/content/blog/testing-series-1-8eRB5p0Y8o/index.mdx index e364fd5cb6..5747b68f70 100644 --- a/apps/blog/content/blog/testing-series-1-8eRB5p0Y8o/index.mdx +++ b/apps/blog/content/blog/testing-series-1-8eRB5p0Y8o/index.mdx @@ -674,4 +674,4 @@ In this article, you focused on _mocking_ and _spying_, which play a major role With this foundation, you have the tools to unit test an application. In [part 2: Unit Testing](/testing-series-2-xPhjjmIEsM), you will put them to use against a real service. -Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea). +Looking ahead: [Prisma 8](https://www.prisma.io/docs/orm) is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@latest` or read the [Prisma 8 docs](https://pris.ly/pn-ea). diff --git a/apps/blog/content/blog/testing-series-2-xPhjjmIEsM/index.mdx b/apps/blog/content/blog/testing-series-2-xPhjjmIEsM/index.mdx index d342874ed4..61b4a8b5dd 100644 --- a/apps/blog/content/blog/testing-series-2-xPhjjmIEsM/index.mdx +++ b/apps/blog/content/blog/testing-series-2-xPhjjmIEsM/index.mdx @@ -452,4 +452,4 @@ While only one file was covered here, the same concepts apply to the rest of the You can also revisit [part 1: Mocking Prisma Client](/testing-series-1-8eRB5p0Y8o) for the mock setup used here. -Looking ahead: Prisma 8 is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea). +Looking ahead: Prisma 8 is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@latest` or read the [Prisma 8 docs](https://pris.ly/pn-ea). diff --git a/apps/blog/content/blog/testing-series-3-aBUyF8nxAn/index.mdx b/apps/blog/content/blog/testing-series-3-aBUyF8nxAn/index.mdx index 91323d55a1..ee1e344f66 100644 --- a/apps/blog/content/blog/testing-series-3-aBUyF8nxAn/index.mdx +++ b/apps/blog/content/blog/testing-series-3-aBUyF8nxAn/index.mdx @@ -397,4 +397,4 @@ During this article you: In [part 4: End-to-End Testing](/testing-series-4-OVXtDis201), you will test the application from a user's perspective with Playwright. You can also revisit [part 2: Unit Testing](/testing-series-2-xPhjjmIEsM). -Looking ahead: Prisma 8 is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea). +Looking ahead: Prisma 8 is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@latest` or read the [Prisma 8 docs](https://pris.ly/pn-ea). diff --git a/apps/blog/content/blog/testing-series-4-OVXtDis201/index.mdx b/apps/blog/content/blog/testing-series-4-OVXtDis201/index.mdx index a7e97572ce..18ce78515a 100644 --- a/apps/blog/content/blog/testing-series-4-OVXtDis201/index.mdx +++ b/apps/blog/content/blog/testing-series-4-OVXtDis201/index.mdx @@ -379,4 +379,4 @@ Throughout this article you: In [part 5: CI Pipelines](/testing-series-5-xWogenROXm), you will run your unit, integration, and end-to-end tests automatically with GitHub Actions. You can also revisit [part 3: Integration Testing](/testing-series-3-aBUyF8nxAn). -Looking ahead: Prisma 8 is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea). +Looking ahead: Prisma 8 is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@latest` or read the [Prisma 8 docs](https://pris.ly/pn-ea). diff --git a/apps/blog/content/blog/testing-series-5-xWogenROXm/index.mdx b/apps/blog/content/blog/testing-series-5-xWogenROXm/index.mdx index a8a27dd926..1d4f7e947a 100644 --- a/apps/blog/content/blog/testing-series-5-xWogenROXm/index.mdx +++ b/apps/blog/content/blog/testing-series-5-xWogenROXm/index.mdx @@ -235,4 +235,4 @@ In this article you learned: Over this series you learned the kinds of tests you can write against applications that use Prisma ORM, how to write them, and how to automate them in CI. You can revisit any part: [part 1: Mocking](/testing-series-1-8eRB5p0Y8o), [part 2: Unit Testing](/testing-series-2-xPhjjmIEsM), [part 3: Integration Testing](/testing-series-3-aBUyF8nxAn), and [part 4: End-to-End Testing](/testing-series-4-OVXtDis201). -Looking ahead: Prisma 8 is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@next` or read the [Prisma 8 docs](https://pris.ly/pn-ea). +Looking ahead: Prisma 8 is a TypeScript-native rewrite of Prisma ORM, built for AI coding agents and now available as a Release Candidate. Until it reaches general availability, Prisma 7 stays the production choice. To try it, run `npm create prisma@latest` or read the [Prisma 8 docs](https://pris.ly/pn-ea). diff --git a/apps/blog/public/create-prisma-deploy-prisma-compute/imgs/hero.svg b/apps/blog/public/create-prisma-deploy-prisma-compute/imgs/hero.svg index 045df4b584..849731531e 100644 --- a/apps/blog/public/create-prisma-deploy-prisma-compute/imgs/hero.svg +++ b/apps/blog/public/create-prisma-deploy-prisma-compute/imgs/hero.svg @@ -495,4 +495,4 @@ font-display: swap; src: url("data:font/woff2;base64,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") format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; -}]]>
create-prisma

Scaffold a
deploy-ready
app

$ bun create prisma@latest
Choose template
Generate typed config
Add Postgres + Skills
Prisma
\ No newline at end of file +}]]>
create-prisma

Scaffold a
deploy-ready
app

$ bun create prisma@stable
Choose template
Generate typed config
Add Postgres + Skills
Prisma
\ No newline at end of file diff --git a/apps/docs/content/docs/guides/frameworks/astro.mdx b/apps/docs/content/docs/guides/frameworks/astro.mdx index 5b68ece356..7bee419796 100644 --- a/apps/docs/content/docs/guides/frameworks/astro.mdx +++ b/apps/docs/content/docs/guides/frameworks/astro.mdx @@ -18,7 +18,7 @@ In this guide, you'll learn to integrate Prisma ORM with a Prisma Postgres datab Run one command to scaffold an Astro project with Prisma ORM and Prisma Postgres ready to go: ```npm -npm create prisma@latest -- --template astro +npm create prisma@stable -- --template astro ``` Or follow the steps below to set it up manually. diff --git a/apps/docs/content/docs/guides/frameworks/elysia.mdx b/apps/docs/content/docs/guides/frameworks/elysia.mdx index 401251756e..69de1341fd 100644 --- a/apps/docs/content/docs/guides/frameworks/elysia.mdx +++ b/apps/docs/content/docs/guides/frameworks/elysia.mdx @@ -18,7 +18,7 @@ In this guide, you'll learn to integrate Prisma ORM with a Prisma Postgres datab Run one command to scaffold an Elysia project with Prisma ORM and Prisma Postgres ready to go: ```npm -npm create prisma@latest -- --template elysia +npm create prisma@stable -- --template elysia ``` Or follow the steps below to set it up manually. diff --git a/apps/docs/content/docs/guides/frameworks/hono.mdx b/apps/docs/content/docs/guides/frameworks/hono.mdx index 809d2632ab..d9f6a61184 100644 --- a/apps/docs/content/docs/guides/frameworks/hono.mdx +++ b/apps/docs/content/docs/guides/frameworks/hono.mdx @@ -18,7 +18,7 @@ In this guide, you'll learn to integrate Prisma ORM with a Prisma Postgres datab Run one command to scaffold a Hono project with Prisma ORM and Prisma Postgres ready to go: ```npm -npm create prisma@latest -- --template hono +npm create prisma@stable -- --template hono ``` Or follow the steps below to set it up manually. diff --git a/apps/docs/content/docs/guides/frameworks/nestjs.mdx b/apps/docs/content/docs/guides/frameworks/nestjs.mdx index c4cfb1143c..c87e578f44 100644 --- a/apps/docs/content/docs/guides/frameworks/nestjs.mdx +++ b/apps/docs/content/docs/guides/frameworks/nestjs.mdx @@ -22,7 +22,7 @@ You can find a ready-to-run example [here](https://github.com/prisma/prisma-exam Run one command to scaffold a NestJS project with Prisma ORM and Prisma Postgres ready to go: ```npm -npm create prisma@latest -- --template nestjs +npm create prisma@stable -- --template nestjs ``` Or follow the steps below to set it up manually. diff --git a/apps/docs/content/docs/guides/frameworks/nextjs.mdx b/apps/docs/content/docs/guides/frameworks/nextjs.mdx index 727db37df6..bf9ec53a61 100644 --- a/apps/docs/content/docs/guides/frameworks/nextjs.mdx +++ b/apps/docs/content/docs/guides/frameworks/nextjs.mdx @@ -19,7 +19,7 @@ You can find a [deployment-ready example on GitHub](https://github.com/prisma/pr Run one command to scaffold a Next.js project with Prisma ORM and Prisma Postgres ready to go: ```npm -npm create prisma@latest -- --template next +npm create prisma@stable -- --template next ``` Or follow the steps below to set it up manually. diff --git a/apps/docs/content/docs/guides/frameworks/nuxt.mdx b/apps/docs/content/docs/guides/frameworks/nuxt.mdx index f62ca14b11..a12974ecf9 100644 --- a/apps/docs/content/docs/guides/frameworks/nuxt.mdx +++ b/apps/docs/content/docs/guides/frameworks/nuxt.mdx @@ -15,7 +15,7 @@ This guide shows you how to set up Prisma ORM in a Nuxt application with [Prisma Run one command to scaffold a Nuxt project with Prisma ORM and Prisma Postgres ready to go: ```npm -npm create prisma@latest -- --template nuxt +npm create prisma@stable -- --template nuxt ``` Or follow the steps below to set it up manually. diff --git a/apps/docs/content/docs/guides/frameworks/sveltekit.mdx b/apps/docs/content/docs/guides/frameworks/sveltekit.mdx index 4dccac116f..45ef44a219 100644 --- a/apps/docs/content/docs/guides/frameworks/sveltekit.mdx +++ b/apps/docs/content/docs/guides/frameworks/sveltekit.mdx @@ -18,7 +18,7 @@ In this guide, you'll learn to integrate Prisma ORM with a Prisma Postgres datab Run one command to scaffold a SvelteKit project with Prisma ORM and Prisma Postgres ready to go: ```npm -npm create prisma@latest -- --template svelte +npm create prisma@stable -- --template svelte ``` Or follow the steps below to set it up manually. diff --git a/apps/docs/content/docs/guides/frameworks/tanstack-start.mdx b/apps/docs/content/docs/guides/frameworks/tanstack-start.mdx index 158007144b..58d4179837 100644 --- a/apps/docs/content/docs/guides/frameworks/tanstack-start.mdx +++ b/apps/docs/content/docs/guides/frameworks/tanstack-start.mdx @@ -18,7 +18,7 @@ This guide will walk you through integrating Prisma ORM with a Prisma Postgres d Run one command to scaffold a TanStack Start project with Prisma ORM and Prisma Postgres ready to go: ```npm -npm create prisma@latest -- --template tanstack-start +npm create prisma@stable -- --template tanstack-start ``` Or follow the steps below to set it up manually. diff --git a/apps/docs/content/docs/guides/index.mdx b/apps/docs/content/docs/guides/index.mdx index a6e057d6fc..557db38e3a 100644 --- a/apps/docs/content/docs/guides/index.mdx +++ b/apps/docs/content/docs/guides/index.mdx @@ -13,7 +13,7 @@ Welcome to the Guides section! Here you'll find practical, step-by-step guides t Scaffold a new project with Prisma ORM and Prisma Postgres already set up: ```npm -npm create prisma@latest +npm create prisma@stable ``` Pick your framework and options from the prompts. To skip prompts use `--yes`, to set a framework upfront use `--template` (`next`, `hono`, `svelte`, `astro`, `nuxt`, `tanstack-start`, `nestjs`, `elysia`, `turborepo`). diff --git a/apps/docs/content/docs/studio/prisma-next.mdx b/apps/docs/content/docs/studio/prisma-next.mdx index f479f81dcc..f31b1d514d 100644 --- a/apps/docs/content/docs/studio/prisma-next.mdx +++ b/apps/docs/content/docs/studio/prisma-next.mdx @@ -3,7 +3,7 @@ title: Studio with Prisma 8 description: Apply migrations to Prisma Postgres with Prisma 8, then inspect the migration history, schema changes, executed SQL, and data in Prisma Studio. url: /studio/prisma-next metaTitle: Get started with Prisma Studio and Prisma 8 -metaDescription: Create a Prisma 8 project with npm create prisma@next, apply migrations to Prisma Postgres, and use the Studio Migrations view to see what each migration changed. +metaDescription: Create a Prisma 8 project with npm create prisma@latest, apply migrations to Prisma Postgres, and use the Studio Migrations view to see what each migration changed. badge: release-candidate --- @@ -21,13 +21,13 @@ The Migrations view requires `@prisma/studio-core` 0.32.0 or later, which ships Create the project: ```npm -npm create prisma@next +npm create prisma@latest ``` To skip the prompts: ```npm -npm create prisma@next -- my-app --yes --provider postgres --authoring psl --template minimal +npm create prisma@latest -- my-app --yes --provider postgres --authoring psl --template minimal ``` This scaffolds a [data model](/orm/v8/data-modeling) at `src/prisma/contract.prisma`, authored in [PSL](/orm/v8/contract-authoring/psl-syntax). diff --git a/apps/site/src/app/stack/journey/journey-steps.ts b/apps/site/src/app/stack/journey/journey-steps.ts index 808448e32e..4e6ebd09e1 100644 --- a/apps/site/src/app/stack/journey/journey-steps.ts +++ b/apps/site/src/app/stack/journey/journey-steps.ts @@ -34,7 +34,7 @@ export const journeySteps: JourneyStep[] = [ caption: "One command creates the application, provisions a Prisma Postgres database, sets up Prisma 8, and configures the project for Prisma Compute. Nothing to wire together by hand.", lang: "bash", - code: `$ npm create prisma@next + code: `$ npm create prisma@latest ✔ Framework · Hono ✔ ORM · Prisma 8 diff --git a/apps/site/src/app/stack/page.tsx b/apps/site/src/app/stack/page.tsx index ea966b1fe0..39284285bf 100644 --- a/apps/site/src/app/stack/page.tsx +++ b/apps/site/src/app/stack/page.tsx @@ -34,7 +34,7 @@ export const metadata = createPageMetadata({ ogImage: "/og/og-stack.png", }); -const SCAFFOLD_COMMAND = "npm create prisma@next"; +const SCAFFOLD_COMMAND = "npm create prisma@latest"; const stackStructuredData = [ createSoftwareApplicationStructuredData({ From 081f4d5049fed996e770bb9adc59dd8501fb65cc Mon Sep 17 00:00:00 2001 From: Aman Varshney Date: Fri, 21 Aug 2026 20:11:56 +0530 Subject: [PATCH 3/6] docs: fix stable NestJS template command --- apps/docs/content/docs/guides/frameworks/nestjs.mdx | 2 +- apps/docs/content/docs/guides/index.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/docs/content/docs/guides/frameworks/nestjs.mdx b/apps/docs/content/docs/guides/frameworks/nestjs.mdx index c87e578f44..5d2bfe2e7d 100644 --- a/apps/docs/content/docs/guides/frameworks/nestjs.mdx +++ b/apps/docs/content/docs/guides/frameworks/nestjs.mdx @@ -22,7 +22,7 @@ You can find a ready-to-run example [here](https://github.com/prisma/prisma-exam Run one command to scaffold a NestJS project with Prisma ORM and Prisma Postgres ready to go: ```npm -npm create prisma@stable -- --template nestjs +npm create prisma@stable -- --template nest ``` Or follow the steps below to set it up manually. diff --git a/apps/docs/content/docs/guides/index.mdx b/apps/docs/content/docs/guides/index.mdx index 557db38e3a..bdde3df292 100644 --- a/apps/docs/content/docs/guides/index.mdx +++ b/apps/docs/content/docs/guides/index.mdx @@ -16,7 +16,7 @@ Scaffold a new project with Prisma ORM and Prisma Postgres already set up: npm create prisma@stable ``` -Pick your framework and options from the prompts. To skip prompts use `--yes`, to set a framework upfront use `--template` (`next`, `hono`, `svelte`, `astro`, `nuxt`, `tanstack-start`, `nestjs`, `elysia`, `turborepo`). +Pick your framework and options from the prompts. To skip prompts use `--yes`, to set a framework upfront use `--template` (`next`, `hono`, `svelte`, `astro`, `nuxt`, `tanstack-start`, `nest`, `elysia`, `turborepo`). ## Getting started From cdb077ecaabf7d7d0b6c7db593228be38cf7e4ce Mon Sep 17 00:00:00 2001 From: Aman Varshney Date: Fri, 21 Aug 2026 20:32:27 +0530 Subject: [PATCH 4/6] docs: pass npm create flags through --- .../blog/content/blog/introducing-create-prisma/index.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/blog/content/blog/introducing-create-prisma/index.mdx b/apps/blog/content/blog/introducing-create-prisma/index.mdx index bbe1fe9613..7d024002fe 100644 --- a/apps/blog/content/blog/introducing-create-prisma/index.mdx +++ b/apps/blog/content/blog/introducing-create-prisma/index.mdx @@ -39,7 +39,7 @@ Next.js, Nuxt, SvelteKit, Hono, NestJS, TanStack Start, and Turborepo do not all Create a Hono API with PostgreSQL: ```bash -npm create prisma@stable --name my-api --template hono --provider postgresql +npm create prisma@stable -- --name my-api --template hono --provider postgresql cd my-api npm run dev ``` @@ -47,7 +47,7 @@ npm run dev Or create a Turborepo where Prisma lives in a shared database package: ```bash -npm create prisma@stable --name my-monorepo --template turborepo --provider postgresql +npm create prisma@stable -- --name my-monorepo --template turborepo --provider postgresql ``` Templates are available for Hono, Elysia, NestJS, Next.js, SvelteKit, Astro, Nuxt, TanStack Start, and Turborepo. @@ -70,7 +70,7 @@ By default, it also includes a small `User` model, seed data, and an example que If you choose PostgreSQL and do not provide a `DATABASE_URL`, `create-prisma` can create a Prisma Postgres database for you: ```bash -npm create prisma@stable \ +npm create prisma@stable -- \ --name my-app \ --template next \ --provider postgresql \ @@ -86,7 +86,7 @@ Databases created this way are temporary for 24 hours until claimed. That makes `create-prisma` can also set up Prisma tools for your editor and AI coding agents: ```bash -npm create prisma@stable \ +npm create prisma@stable -- \ --name my-app \ --template next \ --provider postgresql \ From e511ac4c1eb7c8e86c41e243fe59698b1bab53b2 Mon Sep 17 00:00:00 2001 From: Aman Varshney Date: Fri, 21 Aug 2026 20:41:13 +0530 Subject: [PATCH 5/6] docs: remove unsupported Prisma 8 Deno guide --- apps/docs/content/docs/(index)/index.mdx | 3 +- apps/docs/content/docs/(index)/v8/index.mdx | 1 - apps/docs/content/docs/guides/v8/index.mdx | 1 - .../content/docs/guides/v8/runtimes/deno.mdx | 142 ------------------ .../content/docs/guides/v8/runtimes/meta.json | 2 +- 5 files changed, 2 insertions(+), 147 deletions(-) delete mode 100644 apps/docs/content/docs/guides/v8/runtimes/deno.mdx diff --git a/apps/docs/content/docs/(index)/index.mdx b/apps/docs/content/docs/(index)/index.mdx index 9c912e3b4a..a2dfe18a98 100644 --- a/apps/docs/content/docs/(index)/index.mdx +++ b/apps/docs/content/docs/(index)/index.mdx @@ -63,7 +63,7 @@ Use the installed Prisma 8 skills and the current Prisma docs: https://www.prism - + @@ -75,7 +75,6 @@ Use the installed Prisma 8 skills and the current Prisma docs: https://www.prism - If you're using Express or another Node.js server, follow the [existing-project path](/v8/add-to-existing-project/postgresql) instead. diff --git a/apps/docs/content/docs/(index)/v8/index.mdx b/apps/docs/content/docs/(index)/v8/index.mdx index 85a20e9628..a217837af7 100644 --- a/apps/docs/content/docs/(index)/v8/index.mdx +++ b/apps/docs/content/docs/(index)/v8/index.mdx @@ -72,7 +72,6 @@ Each guide runs the same journey for a specific framework: scaffold, connect Pri - ## Learn the fundamentals diff --git a/apps/docs/content/docs/guides/v8/index.mdx b/apps/docs/content/docs/guides/v8/index.mdx index 436d276e78..b26cd4eeff 100644 --- a/apps/docs/content/docs/guides/v8/index.mdx +++ b/apps/docs/content/docs/guides/v8/index.mdx @@ -29,7 +29,6 @@ Each framework guide scaffolds a working app with `create-prisma`, initializes t - ## Coming as they land diff --git a/apps/docs/content/docs/guides/v8/runtimes/deno.mdx b/apps/docs/content/docs/guides/v8/runtimes/deno.mdx deleted file mode 100644 index c52a67d11f..0000000000 --- a/apps/docs/content/docs/guides/v8/runtimes/deno.mdx +++ /dev/null @@ -1,142 +0,0 @@ ---- -title: Deno -description: Run Prisma 8 on Deno, including the import-extension and permission differences that matter. -url: /guides/v8/runtimes/deno -metaTitle: How to use Prisma 8 with Deno -metaDescription: Set up a Prisma 8 project on Deno with Prisma Postgres, from scaffold to first query, with tested commands and real output. ---- - -## Introduction - -In this guide, you scaffold a Prisma 8 project for Deno, initialize and seed a PostgreSQL database, and run your first typed query. Deno runs TypeScript natively and installs npm packages on demand, so the flow is close to the [Bun guide](/guides/v8/runtimes/bun). Two Deno-specific differences come up along the way: explicit import extensions and permission flags. - -Every command and code sample below was run end to end against a live Prisma Postgres database. - -## Prerequisites - -- [Deno](https://deno.com/) 2.0 or later (`deno --version`) -- A PostgreSQL connection string, or nothing at all: the scaffold provisions a temporary [Prisma Postgres](/postgres) database for you - -## Use with your agent - -Prefer to delegate this guide? Copy the prompt and hand it to your coding agent: - - - -```text -Create a new Prisma 8 project on Deno, seed it, and run a first typed query. - -1. Scaffold: `deno run -A npm:create-prisma@latest create my-deno-app --template minimal --provider postgres --package-manager deno --yes`. The scaffold provisions a temporary Prisma Postgres database and writes `DATABASE_URL` and a `CLAIM_URL` to `.env`; show me the claim URL so I can keep the database. If I give you a connection string, put it in `.env` as `DATABASE_URL` instead. -2. In `my-deno-app`, run `deno install`, then `deno task contract:emit` and `deno task db:init`. Do not call `npm:prisma@next` directly; the unified CLI does not load under Deno yet, and the generated tasks use the working `npm:prisma-next` entry point. -3. Run `deno task db:seed`. If seeding fails with `Cannot read properties of undefined (reading 'where')`, change `db.orm.User` to `db.orm.public.User` in `src/prisma/seed.ts`, `src/prisma/users.ts`, and `src/index.ts`, then rerun. -4. Replace `src/index.ts` with a script that creates a user and reads all users back, following https://www.prisma.io/docs/guides/v8/runtimes/deno.md. Keep the `.ts` extension on relative imports. Verify `deno task dev` prints the created user and the user count. -5. Do not deploy to Prisma Compute; it does not support Deno yet. - -Use the installed Prisma 8 skills. -``` - - - -## 1. Scaffold the project - -`create-prisma` supports Deno as a package manager choice: - -```bash -deno run -A npm:create-prisma@latest create my-deno-app --template minimal --provider postgres --package-manager deno -``` - -By default the scaffold provisions a temporary Prisma Postgres database and writes `DATABASE_URL` and a `CLAIM_URL` to `.env`; open the claim URL within 24 hours to keep the database in your account, or replace `DATABASE_URL` with your own connection string. The generated `package.json` scripts wrap every command in `deno run -A --env-file=.env`, so environment variables load without a dotenv import. - -```bash -cd my-deno-app -deno install -``` - -## 2. Emit the contract and initialize the database - -Use the generated tasks. They call the `npm:prisma-next` entry point; the unified `npm:prisma@next` CLI does not load under Deno yet, and fails with `ERR_MODULE_NOT_FOUND`. - -```bash -deno task contract:emit -deno task db:init -``` - -The first command compiles `src/prisma/contract.prisma` into the contract your queries are type-checked against and prints a JSON summary with `"ok": true` and the emitted file paths. The second creates the tables and signs the database. It exits quietly on success. - -The `-A` flag grants the permissions the CLI needs (network for the database, filesystem for the generated files). To scope permissions tighter, start from `--allow-net --allow-read --allow-write --allow-env` and adjust to your setup. - -## 3. Seed the database - -The scaffold wires a seed script to a Deno task: - -```bash -deno task db:seed -``` - -```text no-copy -Seeded 3 users. -``` - -:::note - -Seeing `Cannot read properties of undefined (reading 'where')`? The current template still generates the older unqualified query form. Update `db.orm.User` to `db.orm.public.User` in `src/prisma/seed.ts`, `src/prisma/users.ts`, and `src/index.ts`, then rerun `deno task db:seed`. - -::: - -## 4. Write your first query - -Replace `src/index.ts`. Two things to notice: Deno requires the `.ts` extension on relative imports, and model access is namespace-qualified on PostgreSQL (`db.orm.public.User`): - -```ts title="src/index.ts" -import { db } from "./prisma/db.ts"; - -// Create a user, then read every user back -const user = await db.orm.public.User.create({ - email: `grace+${Date.now()}@prisma.io`, - name: "Grace Hopper", -}); -console.log(`created user ${user.email}`); - -const users = await db.orm.public.User.select("id", "email", "name").all(); -console.log(`there are now ${users.length} users`); - -await db.runtime().close(); -``` - -If you see `Module not found "file:///…/src/prisma/db"`, the import is missing its `.ts` extension. Deno does not resolve relative imports without an extension. - -## 5. Run it - -```bash -deno task dev -``` - -```text no-copy -created user grace+1784893859312@prisma.io -there are now 4 users -``` - -The count is the three seeded users plus the one this script created. - -[Prisma Compute](/compute) does not support Deno deployments yet. See [Deploy your first app](/prisma-compute/deploy) for what is currently supported. In the meantime, the app deploys to Deno's usual hosts, such as Deno Deploy or any server that runs the Deno CLI. - -## Common gotchas - -:::warning - -Deno reports `Unsupported compiler options in tsconfig.json` for a few options the scaffold sets for Node compatibility. The warning is harmless: Deno ignores those options and runs the code the same way. - -::: - -## Prompt your coding agent - -The scaffold installs [Prisma 8 skills](/ai/tools/skills#available-skills-for-prisma-8) for your coding agent. Prompts that map to this guide: - -- "Using the prisma-8 skill, add a Deno task that prints every user created in the last day." -- "Tighten the Deno permissions for this project from -A to an explicit allow list." - -## Next steps - -- [Learn the fundamentals](/orm/v8/fundamentals/reading-data): filtering, sorting, pagination, and writes. -- [Read the Prisma 8 overview](/orm/v8) for the concepts behind contracts and typed queries. -- [Use the Bun guide](/guides/v8/runtimes/bun) if you also target Bun. The flow is the same apart from the runtime differences above. diff --git a/apps/docs/content/docs/guides/v8/runtimes/meta.json b/apps/docs/content/docs/guides/v8/runtimes/meta.json index e44177cc17..ff5a33b8b6 100644 --- a/apps/docs/content/docs/guides/v8/runtimes/meta.json +++ b/apps/docs/content/docs/guides/v8/runtimes/meta.json @@ -1 +1 @@ -{ "title": "Runtimes", "pages": ["bun", "deno"] } +{ "title": "Runtimes", "pages": ["bun"] } From 138b184210b6efa9a6ecc48cb30a2edf3fb8885f Mon Sep 17 00:00:00 2001 From: Aman Varshney Date: Fri, 21 Aug 2026 21:23:32 +0530 Subject: [PATCH 6/6] docs: restore verified Prisma 8 Deno guide --- apps/docs/content/docs/(index)/index.mdx | 3 +- apps/docs/content/docs/(index)/v8/index.mdx | 1 + apps/docs/content/docs/guides/v8/index.mdx | 1 + .../content/docs/guides/v8/runtimes/deno.mdx | 149 ++++++++++++++++++ .../content/docs/guides/v8/runtimes/meta.json | 2 +- 5 files changed, 154 insertions(+), 2 deletions(-) create mode 100644 apps/docs/content/docs/guides/v8/runtimes/deno.mdx diff --git a/apps/docs/content/docs/(index)/index.mdx b/apps/docs/content/docs/(index)/index.mdx index a2dfe18a98..9c912e3b4a 100644 --- a/apps/docs/content/docs/(index)/index.mdx +++ b/apps/docs/content/docs/(index)/index.mdx @@ -63,7 +63,7 @@ Use the installed Prisma 8 skills and the current Prisma docs: https://www.prism - + @@ -75,6 +75,7 @@ Use the installed Prisma 8 skills and the current Prisma docs: https://www.prism + If you're using Express or another Node.js server, follow the [existing-project path](/v8/add-to-existing-project/postgresql) instead. diff --git a/apps/docs/content/docs/(index)/v8/index.mdx b/apps/docs/content/docs/(index)/v8/index.mdx index a217837af7..85a20e9628 100644 --- a/apps/docs/content/docs/(index)/v8/index.mdx +++ b/apps/docs/content/docs/(index)/v8/index.mdx @@ -72,6 +72,7 @@ Each guide runs the same journey for a specific framework: scaffold, connect Pri + ## Learn the fundamentals diff --git a/apps/docs/content/docs/guides/v8/index.mdx b/apps/docs/content/docs/guides/v8/index.mdx index b26cd4eeff..436d276e78 100644 --- a/apps/docs/content/docs/guides/v8/index.mdx +++ b/apps/docs/content/docs/guides/v8/index.mdx @@ -29,6 +29,7 @@ Each framework guide scaffolds a working app with `create-prisma`, initializes t + ## Coming as they land diff --git a/apps/docs/content/docs/guides/v8/runtimes/deno.mdx b/apps/docs/content/docs/guides/v8/runtimes/deno.mdx new file mode 100644 index 0000000000..bc0233d9fa --- /dev/null +++ b/apps/docs/content/docs/guides/v8/runtimes/deno.mdx @@ -0,0 +1,149 @@ +--- +title: Deno +description: Run a minimal Prisma 8 and PostgreSQL app on Deno. +url: /guides/v8/runtimes/deno +metaTitle: How to use Prisma 8 with Deno +metaDescription: Scaffold a Prisma 8 project for Deno, initialize Prisma Postgres, and run the generated typed query end to end. +--- + +## Introduction + +In this guide, you scaffold a minimal Prisma 8 app for Deno, initialize a PostgreSQL database, and run the generated typed query. The app uses Deno-native tasks and explicit `.ts` extensions for relative imports. + +Every command below was run end to end against a live Prisma Postgres database. + +## Prerequisites + +- [Deno](https://deno.com/) 2.0 or later (`deno --version`) + +## Use with your agent + +Prefer to delegate this guide? Copy this prompt and hand it to your coding agent: + + + +```text +Create and verify a minimal Prisma 8 app on Deno. + +1. Run `deno run -A npm:create-prisma@latest my-deno-app --template minimal --provider postgres --package-manager deno --no-deploy --yes`. +2. Enter `my-deno-app`. Run `deno run -A npm:create-db@latest --env .env --ttl 24h` and show me the claim URL so I can keep the temporary database. +3. Run `deno task db:init`, then start `deno task dev` in the background. +4. Request `http://localhost:3000` and verify that it returns Alice, Bob, and Carol. The first request seeds these users automatically; do not add or run a separate seed command. +5. Do not deploy to Prisma Compute because it does not support Deno. + +Use the generated tasks instead of invoking a Prisma CLI package directly. +``` + + + +## 1. Scaffold the project + +Run `create-prisma` through Deno and select the minimal PostgreSQL template: + +```bash +deno run -A npm:create-prisma@latest my-deno-app --template minimal --provider postgres --package-manager deno --no-deploy +``` + +The command creates the app, installs its npm dependencies through Deno, and emits the Prisma contract artifacts. Deno support is currently limited to the minimal PostgreSQL template. + +```bash +cd my-deno-app +``` + +The generated project includes: + +- `deno.json` with npm compatibility enabled +- Deno-native `dev`, `build`, and Prisma tasks in `package.json` +- explicit `.ts` extensions on relative imports +- no Composer or Prisma Compute deployment files + +## 2. Create and initialize the database + +Create a temporary Prisma Postgres database and write its connection string to `.env`: + +```bash +deno run -A npm:create-db@latest --env .env --ttl 24h +``` + +The command prints a claim URL. Open it within 24 hours to keep the database, or replace `DATABASE_URL` in `.env` with your own PostgreSQL connection string. + +Apply the starter contract and sign the database: + +```bash +deno task db:init +``` + +## 3. Run the app + +Start the generated HTTP server: + +```bash +deno task dev +``` + +Then request it from another terminal: + +```bash +curl http://localhost:3000 +``` + +The response contains the starter users: + +```json no-copy +{ + "users": [ + { "email": "alice@prisma.io", "name": "Alice" }, + { "email": "bob@prisma.io", "name": "Bob" }, + { "email": "carol@prisma.io", "name": "Carol" } + ] +} +``` + +The first request runs `src/prisma/seed.ts` through the generated query helper. Seeding is idempotent, so later requests read the same rows without creating duplicates. There is no separate seed command. + +## 4. Understand the generated query + +The generated `src/prisma/users.ts` connects the database, seeds on the first query, and reads from the PostgreSQL `public` namespace: + +```ts title="src/prisma/users.ts" +import { db } from "./db.ts"; +import { seed } from "./seed.ts"; + +export async function listUsers(limit = 10) { + await seed(); + + const users = await db.orm.public.User + .select("id", "email", "username", "name", "createdAt") + .take(limit) + .all(); + + return users.map((user) => ({ + id: String(user.id), + email: user.email, + username: user.username ?? null, + name: user.name ?? null, + createdAt: user.createdAt, + })); +} +``` + +Deno requires the `.ts` extension on these relative imports. The generated files already include it. + +After changing `src/prisma/contract.prisma`, regenerate the typed artifacts and update the database: + +```bash +deno task contract:emit +deno task db:update +``` + +## Current limitations + +- Prisma Compute does not support Deno deployments yet. +- The generated ORM tasks currently use the Deno-compatible Prisma 8 ORM CLI entry point. The consolidated `npm:prisma@next` CLI still loads Node-only credential storage under Deno, so use the generated tasks rather than invoking a CLI package directly. +- The generated commands use `-A` for the filesystem, environment, and network permissions required during setup and local development. You can replace it with a narrower allow list for your application after setup. + +## Next steps + +- [Learn the fundamentals](/orm/v8/fundamentals/reading-data): filtering, sorting, pagination, and writes. +- [Read the Prisma 8 overview](/orm/v8) for contracts, typed queries, and migrations. +- [Use the Bun guide](/guides/v8/runtimes/bun) if you also target Bun. diff --git a/apps/docs/content/docs/guides/v8/runtimes/meta.json b/apps/docs/content/docs/guides/v8/runtimes/meta.json index ff5a33b8b6..e44177cc17 100644 --- a/apps/docs/content/docs/guides/v8/runtimes/meta.json +++ b/apps/docs/content/docs/guides/v8/runtimes/meta.json @@ -1 +1 @@ -{ "title": "Runtimes", "pages": ["bun"] } +{ "title": "Runtimes", "pages": ["bun", "deno"] }