# Overview (/docs/cli/v8)

> For the complete Prisma documentation index, see [llms.txt](https://www.prisma.io/docs/llms.txt). A markdown version of any docs page is available by appending `.md` to its URL.

Prisma CLI reference

Location: CLI > Overview

Prisma 8 ships with a new, unified Prisma CLI. One binary contains the commands for the platform and ORM including [Prisma Composer](https://www.prisma.io/docs/composer), [Prisma Compute](https://www.prisma.io/docs/compute), and more.

> [!NOTE]
> The Prisma 8 Release Candidate is available
> 
> Prisma 8 is available as a Release Candidate and the recommended version. It's the cutting-edge future of Prisma, so we'd love for you to try it, explore what's new, and [share your feedback in Discord](https://pris.ly/discord).
> 
> If you want to stay on the current generally available version of Prisma ORM, you can continue with [Prisma 7](https://www.prisma.io/docs/getting-started).

The Prisma 8 RC CLI is the `next` tag of the `prisma` package. Run it without installing:

  

#### bun

```bash
bunx prisma@next --help
bunx prisma@next contract emit
```

#### pnpm

```bash
pnpm dlx prisma@next --help
pnpm dlx prisma@next contract emit
```

#### yarn

```bash
yarn dlx prisma@next --help
yarn dlx prisma@next contract emit
```

#### npm

```bash
npx prisma@next --help
npx prisma@next contract emit
```

At general availability these commands become plain `prisma contract emit` and so on.

For a full app scaffold, use a [Prisma 8 quickstart](https://www.prisma.io/docs/v8/quickstart/postgresql). That path creates the project files and package scripts for you. This CLI reference is for the lower-level commands those scripts call.

## Platform commands [#platform-commands]

The platform commands manage everything your app runs on. With [`service`](https://www.prisma.io/docs/cli/v8/service), [`git`](https://www.prisma.io/docs/cli/v8/git), and [`composer`](https://www.prisma.io/docs/cli/v8/composer) you deploy apps to [Prisma Compute](https://www.prisma.io/docs/compute) and manage their deployments, logs, and domains. With [`postgres`](https://www.prisma.io/docs/cli/v8/postgres) you spin up and manage [Prisma Postgres](https://www.prisma.io/docs/postgres) databases. With [`bucket`](https://www.prisma.io/docs/cli/v8/bucket) you create blob-storage buckets and their access keys. [`auth`](https://www.prisma.io/docs/cli/v8/auth), [`project`](https://www.prisma.io/docs/cli/v8/project), and [`branch`](https://www.prisma.io/docs/cli/v8/branch) handle the account, project, and branch plumbing around them. Each command group has its own page in this section; deployments are created by a git push, the [Console](https://pris.ly/pdp), or [Composer](https://www.prisma.io/docs/composer), never by a standalone `deploy` command.

## Common workflows [#common-workflows]

There are two main entry points. Platform users deploy apps, create databases, and provision buckets with the [platform commands](#platform-commands). ORM users manage their schema, contracts, and migrations with the ORM and migration commands.

### Deploy an app [#deploy-an-app]

Sign in, write the committed compute config, and connect the repository; every push then deploys:

  

#### bun

```bash
bunx prisma@next auth login
bunx --bun prisma@next init
bunx prisma@next git connect
```

#### pnpm

```bash
pnpm dlx prisma@next auth login
pnpm dlx prisma@next init
pnpm dlx prisma@next git connect
```

#### yarn

```bash
yarn dlx prisma@next auth login
yarn dlx prisma@next init
yarn dlx prisma@next git connect
```

#### npm

```bash
npx prisma@next auth login
npx prisma@next init
npx prisma@next git connect
```

Follow a deploy with [`build logs`](https://www.prisma.io/docs/cli/v8/build) and manage the result with [`service`](https://www.prisma.io/docs/cli/v8/service).

### Create a database [#create-a-database]

  

#### bun

```bash
bunx prisma@next postgres create mydb
bunx prisma@next postgres connection create mydb
```

#### pnpm

```bash
pnpm dlx prisma@next postgres create mydb
pnpm dlx prisma@next postgres connection create mydb
```

#### yarn

```bash
yarn dlx prisma@next postgres create mydb
yarn dlx prisma@next postgres connection create mydb
```

#### npm

```bash
npx prisma@next postgres create mydb
npx prisma@next postgres connection create mydb
```

`postgres create` prints a one-time connection URL; `postgres connection create` mints another when you need one. See [`postgres`](https://www.prisma.io/docs/cli/v8/postgres).

### Create a bucket [#create-a-bucket]

  

#### bun

```bash
bunx prisma@next bucket create --name my-bucket
bunx prisma@next bucket key create <bucket-id>
```

#### pnpm

```bash
pnpm dlx prisma@next bucket create --name my-bucket
pnpm dlx prisma@next bucket key create <bucket-id>
```

#### yarn

```bash
yarn dlx prisma@next bucket create --name my-bucket
yarn dlx prisma@next bucket key create <bucket-id>
```

#### npm

```bash
npx prisma@next bucket create --name my-bucket
npx prisma@next bucket key create <bucket-id>
```

`bucket key create` prints the key's one-time credentials. See [`bucket`](https://www.prisma.io/docs/cli/v8/bucket).

### Start in an existing project [#start-in-an-existing-project]

  

#### bun

```bash
bunx prisma@next orm init --target postgres --authoring psl
bunx prisma@next contract emit
bunx prisma@next db init --db "$DATABASE_URL"
```

#### pnpm

```bash
pnpm dlx prisma@next orm init --target postgres --authoring psl
pnpm dlx prisma@next contract emit
pnpm dlx prisma@next db init --db "$DATABASE_URL"
```

#### yarn

```bash
yarn dlx prisma@next orm init --target postgres --authoring psl
yarn dlx prisma@next contract emit
yarn dlx prisma@next db init --db "$DATABASE_URL"
```

#### npm

```bash
npx prisma@next orm init --target postgres --authoring psl
npx prisma@next contract emit
npx prisma@next db init --db "$DATABASE_URL"
```

### Adopt an existing database [#adopt-an-existing-database]

  

#### bun

```bash
bunx prisma@next contract infer --db "$DATABASE_URL" --output ./prisma/contract.prisma
bunx prisma@next contract emit
bunx prisma@next db sign --db "$DATABASE_URL"
bunx prisma@next db verify --db "$DATABASE_URL"
```

#### pnpm

```bash
pnpm dlx prisma@next contract infer --db "$DATABASE_URL" --output ./prisma/contract.prisma
pnpm dlx prisma@next contract emit
pnpm dlx prisma@next db sign --db "$DATABASE_URL"
pnpm dlx prisma@next db verify --db "$DATABASE_URL"
```

#### yarn

```bash
yarn dlx prisma@next contract infer --db "$DATABASE_URL" --output ./prisma/contract.prisma
yarn dlx prisma@next contract emit
yarn dlx prisma@next db sign --db "$DATABASE_URL"
yarn dlx prisma@next db verify --db "$DATABASE_URL"
```

#### npm

```bash
npx prisma@next contract infer --db "$DATABASE_URL" --output ./prisma/contract.prisma
npx prisma@next contract emit
npx prisma@next db sign --db "$DATABASE_URL"
npx prisma@next db verify --db "$DATABASE_URL"
```

### Use checked-in migrations [#use-checked-in-migrations]

  

#### bun

```bash
bunx prisma@next contract emit
bunx prisma@next migration plan --name add-users
bunx prisma@next migration status --db "$DATABASE_URL"
bunx prisma@next migrate --db "$DATABASE_URL"
bunx prisma@next db verify --db "$DATABASE_URL"
```

#### pnpm

```bash
pnpm dlx prisma@next contract emit
pnpm dlx prisma@next migration plan --name add-users
pnpm dlx prisma@next migration status --db "$DATABASE_URL"
pnpm dlx prisma@next migrate --db "$DATABASE_URL"
pnpm dlx prisma@next db verify --db "$DATABASE_URL"
```

#### yarn

```bash
yarn dlx prisma@next contract emit
yarn dlx prisma@next migration plan --name add-users
yarn dlx prisma@next migration status --db "$DATABASE_URL"
yarn dlx prisma@next migrate --db "$DATABASE_URL"
yarn dlx prisma@next db verify --db "$DATABASE_URL"
```

#### npm

```bash
npx prisma@next contract emit
npx prisma@next migration plan --name add-users
npx prisma@next migration status --db "$DATABASE_URL"
npx prisma@next migrate --db "$DATABASE_URL"
npx prisma@next db verify --db "$DATABASE_URL"
```

## Other commands [#other-commands]

A few commands ship without dedicated pages yet. `format` formats your PSL contract source in place, and `lsp` starts the Prisma 8 language server (spawned by editors, not run interactively). The `migration` group also has read-only inspection commands: `migration list` (on-disk migrations per contract space; `--space`, `--ascii`, `--legend`), `migration log` (executed history from the database ledger; `--db`, `--utc`, `--ascii`), `migration graph` (graph topology; `--space`, `--dot` for Graphviz output, `--ascii`, `--legend`), and `migration check [target]` (artifact and graph integrity; `--space`). Run any of them with `--help` for the details.

## Global flags [#global-flags]

Every command accepts the same set of output, prompt, and config flags. They are documented on [Global flags](https://www.prisma.io/docs/cli/v8/global-flags).

## Related pages

- [`db`](https://www.prisma.io/docs/cli/db): Manage your database schema and lifecycle during development
- [`debug`](https://www.prisma.io/docs/cli/debug): Display Prisma debug information including schema paths, engine binaries, environment variables, and cache directories for troubleshooting
- [`dev`](https://www.prisma.io/docs/cli/dev): Start a local Prisma Postgres server for development
- [`format`](https://www.prisma.io/docs/cli/format): Format and validate your Prisma schema file with consistent structure
- [`generate`](https://www.prisma.io/docs/cli/generate): Generate artifacts like Prisma Client based on your Prisma schema