Build and deploy a Prisma app from one ChatGPT prompt with the official Prisma plugin
The official Prisma plugin for ChatGPT is out. It connects ChatGPT and Codex to Prisma ORM, Prisma Postgres, and Prisma Compute, so one prompt can build an app, create and connect its database, and deploy it. Prisma ORM 8 is still a release candidate, and prisma@8.0.0-rc.30, released on November 3, is its command-line tool, which also deploys apps to Prisma Compute. Prisma Composer is the composer section of prisma.config.ts that describes a Prisma Compute app's services and databases. In this release, the place a Composer app runs is called an environment: prisma deploy --environment staging replaces --stage, and prisma dev --environment test runs a second, separate copy of your app on your machine. Cloning a Prisma Postgres database no longer blocks connections to the source while the clone runs.
If your package.json pins prisma@7, nothing in this entry changes your commands, but a script that installs prisma@latest gets Prisma 8. If you run prisma deploy yourself with --stage, replace it, as described under "What you need to do". Accelerate is retired on December 1, 2026, and if your connection string does not contain accelerate.prisma-data.net, that does not affect you.
Ask ChatGPT to build, connect, and deploy your app
Until now, building an app with ChatGPT meant switching between the chat, a database dashboard, and a terminal to connect the pieces. The Prisma plugin for ChatGPT gives ChatGPT and Codex the context they need to write the data layer with Prisma ORM, create a Prisma Postgres database and connect the app to it, and deploy the result to Prisma Compute, from one conversation.
To try it, install the plugin in ChatGPT, then ask ChatGPT, or Codex, OpenAI's coding agent, which the plugin also connects:
Build me a workout tracker using Prisma ORM and Prisma Postgres, then deploy it to Prisma Compute.
If you already connect ChatGPT to Prisma through the Prisma MCP server by hand, that setup keeps working, and the ChatGPT guide still describes it.
Run a second local copy of your app with prisma dev --environment
In the Prisma 8 command-line tool, prisma dev runs your whole Prisma Composer app on your machine, services and databases included, with no Prisma account. The Prisma ORM 7 command of the same name, which starts a local Prisma Postgres database, is unchanged in version 7. Until now you could run only one local copy of an app, so a test that needed a clean database meant wiping the copy you work in with --fresh. Since prisma@8.0.0-rc.30, each environment name gets its own complete local copy, with its own database, storage, and ports, and the copy you get by default is named dev. The commands below act on whichever copy you name, while dev keeps running. --fresh wipes the copy you name before starting it and leaves the other copies alone. (composer#392)
npx prisma dev --detach # the environment dev
npx prisma dev --environment test --fresh --detach # a second, clean copy beside it
npx prisma dev url shop.api --environment test
npx prisma dev stop --environment test
The same word now names a deployed environment too. prisma deploy --environment staging deploys there, prisma deploy on its own deploys production, and prisma deploy list --environment staging lists what is deployed. If a script of yours tears down an environment with Composer's destroy() function, it must now name the environment, and a call without a name fails instead of destroying production. (composer#390)
prisma dev also no longer makes up a value for a secret you have not set. Before, an unset secret such as an API key got a placeholder string, so a service could not tell whether it had a real key. Now a secret comes only from the shell you run prisma dev in, or from a .env file that prisma.config.ts loads. If a secret the service requires is missing, prisma dev stops and the error names the variable and the service. If the service's input declares the secret optional, as in 'apiKey?': secretString(), it is left unset, so a feature that depends on it stays off. The service input page explains that an unset variable leaves its field out of the input, and the service's schema decides whether that is allowed. (composer#382)
What you need to do
- If you run
prisma deploy --stagein a script or a workflow, change it toprisma deploy --environmentwhen you move toprisma@8.0.0-rc.30. On that version,--stagefails withCLI.COMMAND_MOVEDand names the replacement. Upgrade@prisma/composer-prisma-cloudto 0.36.0 in the same step:prisma@8.0.0-rc.30ships Composer 0.36.0, and the extension and the tool that runs the deploy must be the same Composer version, orprisma deploy,destroy(), andprisma devrefuse withDEPS.EXTENSION_INCOMPATIBLEbefore they change anything. A workflow that the Console set up for you pins itsprismaversion, and for now keep that pin below rc.30: the workflow deploys throughprisma/cloud-deploy-action, which still passes--stagefor every branch other than the default one, so raising the pin breaks preview and staging deploys until the action sends--environment. A production deploy from the default branch passes no flag and is not affected. In a script that calls Composer'sdestroy(),destroy({ target: { kind: 'stage', stage: 'staging' }, config })becomesdestroy({ environment: 'staging', config }), and production isdestroy({ environment: 'production', config }). Such a script importsdestroy()from the project's own@prisma/composer, so upgrade that package to 0.36.0 with the extension, whether or not the script used--stage. One install problem is open:@prisma/composer-prisma-cloud@0.36.0still declares a peer dependency on@prisma/orm-postgres@8.0.0-rc.20, so with npm an install beside8.0.0-rc.22stops withERESOLVEuntil you pass--legacy-peer-deps(composer#413). (composer#390) - If
prisma devworked for you without every secret set, set each secret before you upgrade, either by exporting it in the shell you runprisma devfrom, or by installingdotenvand addingimport "dotenv/config";at the top ofprisma.config.tsso it loads your.envfile. The error names each missing variable and the service that needs it.prisma deployreads the sameprisma.config.ts, so a value in that.envfile reaches a deploy too, and the first deploy to a new environment copies any secret the environment does not have yet from the shell the deploy runs in, as the deploy guide explains. Keep a development-only value, such as a test API key, out of the.envfile thatprisma.config.tsloads, or set it in the shell only, because a deploy run from that folder would seed it into the environment. (composer#382) - If you are on Prisma ORM 7, nothing in this entry needs a change in your app. The
prisma@8.0.0-rc.30release is the Prisma 8 command-line tool; your project stays on version 7 as long as itspackage.jsonasks for it. Check any script or CI job that installsprisma@latestand change it toprisma@7, becauselatestis Prisma ORM 8. - Accelerate is retired on December 1, 2026. If your app connects through a URL that starts with
prisma+postgres://accelerate.prisma-data.net, switch to a pooled connection or to the serverless driver before then. If you use Accelerate with your own database, keep your database and connect to it without Accelerate.
Prisma Compute
The Console can now open its setup pull request on a repository that uses Vite 7 or a non-beta release of drizzle-kit. Before, the setup stopped on an npm dependency conflict and no pull request was opened.
The Console's setup steps are now right for the version of Prisma ORM a repository uses. A Prisma ORM 7 repository no longer reads that it must move to Prisma ORM 8, because Prisma Compute runs Prisma ORM 7 apps. Instead it gets the steps from the side-by-side guide: the Prisma 8 command-line tool is installed as prisma to run deploys, your Prisma ORM 7 client keeps running as it is, and its own tool becomes prisma7. This is the intended path for a Prisma ORM 7 app on Prisma Compute. A Prisma ORM 8 repository is no longer told to run prisma migrate dev, which is a Prisma ORM 7 command.
A GitHub deploy no longer shows Deploying forever when the workflow finished green but never deployed anything. The build is now marked failed with the reason, for example that the workflow's permissions block lacks id-token: write, which the deploy action needs to get its credential. A copy of a template that was stuck on Deploying after its first CI run now recovers when you re-run the workflow.
Prisma Postgres
Cloning a database no longer blocks connections to the database you clone from. Before, the source refused new connections for the few minutes the clone took.
Prisma Console
The page that asks you to allow an app to use your Prisma account, at auth.prisma.io/authorize, now matches the sign-in page. It shows the app's icon, which account you are signed in as, with a way to switch, one row per permission with a plain explanation, and the workspace the app will use.
Docs and website
- Every Prisma Compute app template now has its own page under /apps, with the running app in a browser frame, what it does, the three deploy steps, and a Deploy on Prisma button, so you can share a template by link. The first is Room Booking, a community template.
- The Prisma Postgres overview gains a path for a project that already has a Prisma schema: create a database with
npx create-db@latest --env .envand apply the schema you have. - The Prisma Postgres guides directory gains a page on high availability.
Guides and articles
- One ChatGPT plugin to deploy it all: the official Prisma plugin for ChatGPT connects ChatGPT and Codex to Prisma ORM, Prisma Postgres, and Prisma Compute, so you can build, set up the database, and deploy from one prompt.
Need help applying these changes in production? Prisma Enterprise Support can help with schema design, performance, security, and compliance.