Skip to main content
Prisma Documentation Docs

Search documentation

Type to search this documentation.

On this pageOverview

contract print

contract print loads the contract that contract names in prisma.config.ts and writes it as a Prisma ORM 8 PSL contract. The source can be a Prisma ORM 7 schema, a TypeScript contract, or a PSL contract.

Use it to move from a Prisma ORM 7 schema.prisma, read through prisma7Schema, to a contract file written for Prisma ORM 8.

The command is offline. It does not need a database connection.

title="bun"
bunx prisma contract print [--output <path>]
pnpm
pnpm prisma contract print [--output <path>]
yarn
yarn prisma contract print [--output <path>]
npm
npx prisma contract print [--output <path>]
Option What it does
--output <path> Writes the PSL to this file. Without it, the command prints the PSL and writes no file.
--format human Prints the PSL to standard output, so you can redirect it to a file.
--config <path> Read this config file instead of ./prisma.config.ts.
--json Prints a machine-readable result, with the PSL in psl.text.
title="bun"
bunx prisma contract print

bunx prisma contract print --output ./src/prisma/contract.prisma

bunx prisma contract print --json
pnpm
pnpm prisma contract print
pnpm prisma contract print --output ./src/prisma/contract.prisma
pnpm prisma contract print --json
yarn
yarn prisma contract print
yarn prisma contract print --output ./src/prisma/contract.prisma
yarn prisma contract print --json
npm
npx prisma contract print
npx prisma contract print --output ./src/prisma/contract.prisma
npx prisma contract print --json

The file starts with // use prisma-8. When you point contract at the file and run contract emit, you get the same contract as before, with the same hashes, so the database needs no migration and no new db sign.

When a part of the contract has no PSL form, the command names that part, fails, and writes nothing. It also refuses an --output path that is one of the files it reads, prisma.config.ts, or a file contract emit writes.

  • Set contract in prisma.config.ts to the file you wrote, as Configuration shows.
  • Run contract emit to write contract.json and contract.d.ts from it.
Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu