Prisma + PostgreSQL セットアップ備忘録

投稿日: 2026/03/18

OGP

Prisma + PostgreSQL セットアップ備忘録

前提

  • Prisma migrate dev を使う
  • shadow database を自動作成させる(= CREATEDB 必須)

1. ユーザー・DB作成

CREATE ROLE app_user WITH LOGIN PASSWORD 'password';
CREATE DATABASE app_db OWNER app_user;

2. CREATEDB 権限付与(重要)

ALTER ROLE app_user CREATEDB;

※ これがないと shadow database エラーになる

3. public スキーマ権限

app_db に接続後:

GRANT USAGE, CREATE ON SCHEMA public TO app_user;

4. (任意)DB権限

GRANT ALL PRIVILEGES ON DATABASE app_db TO app_user;

5. Prisma 初期化

npx prisma init

6. .env

DATABASE_URL="postgresql://app_user:password@localhost:5432/app_db?schema=public"

7. schema.prisma

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

generator client {
  provider = "prisma-client-js"
}

8. migrate

npx prisma migrate dev --name init

よくあるエラー

shadow database エラー

Prisma Migrate could not create the shadow database

原因:

ALTER ROLE app_user CREATEDB;

がない

テーブル作成エラー

原因:

GRANT CREATE ON SCHEMA public TO app_user;

がない

最小構成まとめ

CREATE ROLE app_user LOGIN PASSWORD 'password';
CREATE DATABASE app_db OWNER app_user;

ALTER ROLE app_user CREATEDB;

-- app_db に接続後
GRANT USAGE, CREATE ON SCHEMA public TO app_user;