init
The prisma init command bootstraps a fresh Prisma project within the current directory.
prisma init [options]The command creates a prisma directory containing a schema.prisma file. By default, the project is configured for local Prisma Postgres, but you can choose a different database using the --datasource-provider option.
| Option | Description |
|---|---|
-h, --help |
Display help message |
--db |
Provision a fully managed Prisma Postgres database on the Prisma Data Platform |
--datasource-provider |
Define the datasource provider: postgresql, mysql, sqlite, sqlserver, mongodb, or cockroachdb |
--generator-provider |
Define the generator provider to use (default: prisma-client) |
--preview-feature |
Define a preview feature to use (can be specified multiple times) |
--output |
Define Prisma Client generator output path |
--url |
Define a custom datasource URL |
| Flag | Description |
|---|---|
--with-model |
Add an example model to the created schema file |
Sets up a new project configured for local Prisma Postgres:
bunx --bun prisma initpnpm prisma inityarn prisma initnpx prisma initSet up a new project with MySQL as the datasource provider:
bunx --bun prisma init --datasource-provider mysqlpnpm prisma init --datasource-provider mysqlyarn prisma init --datasource-provider mysqlnpx prisma init --datasource-provider mysqlSet up a project with the legacy prisma-client-js generator instead of the default prisma-client generator:
bunx --bun prisma init --generator-provider prisma-client-jspnpm prisma init --generator-provider prisma-client-jsyarn prisma init --generator-provider prisma-client-jsnpx prisma init --generator-provider prisma-client-jsSet up a project with specific preview features enabled:
bunx --bun prisma init --preview-feature metricspnpm prisma init --preview-feature metricsyarn prisma init --preview-feature metricsnpx prisma init --preview-feature metricsMultiple preview features:
bunx --bun prisma init --preview-feature views --preview-feature metricspnpm prisma init --preview-feature views --preview-feature metricsyarn prisma init --preview-feature views --preview-feature metricsnpx prisma init --preview-feature views --preview-feature metricsSet up a project with a custom output path for Prisma Client:
bunx --bun prisma init --output ./generated-clientpnpm prisma init --output ./generated-clientyarn prisma init --output ./generated-clientnpx prisma init --output ./generated-clientSet up a project with a specific database URL:
bunx --bun prisma init --url mysql://user:password@localhost:3306/mydbpnpm prisma init --url mysql://user:password@localhost:3306/mydbyarn prisma init --url mysql://user:password@localhost:3306/mydbnpx prisma init --url mysql://user:password@localhost:3306/mydbSet up a project with an example User model:
bunx --bun prisma init --with-modelpnpm prisma init --with-modelyarn prisma init --with-modelnpx prisma init --with-modelCreate a new project with a managed Prisma Postgres database:
bunx --bun prisma init --dbpnpm prisma init --dbyarn prisma init --dbnpx prisma init --dbThis requires authentication with the Prisma Data Platform Console.
This requires authentication with the Prisma Data Platform Console.
After running prisma init, you'll have the following files:
The Prisma schema file where you define your data model:
generator client {
provider = "prisma-client"
output = "../generated/prisma"
}
datasource db {
provider = "postgresql"
}A TypeScript configuration file for Prisma:
import "dotenv/config";
import { defineConfig, env } from "prisma/config";
export default defineConfig({
schema: "prisma/schema.prisma",
migrations: {
path: "prisma/migrations",
},
datasource: {
url: env("DATABASE_URL"),
},
});Environment variables file for your project:
DATABASE_URL="postgresql://user:password@localhost:5432/mydb"Git ignore file configured for Prisma projects:
node_modules
.env
/generated/prisma