
Prisma とは
データベースをJS/TSから方安全に操作できるORM。schemaからDB構造と操作用のAPIを自動生成するのが特徴。
ORM(Object Relational Mapping)
データベース操作をオブジェクト指向型言語のやり方で扱えるようにするための手法。
ORMを使用するメリット
- SQLを書かずJS/TSで完結できる
- 型安全
- 可読性が高い
- DBに依存しないコードが書ける(DBを変更しやすくなる)
触ってみる
インストール
npm install prisma --save-dev
npm install @prisma/client // インストールする
npx prisma init // 初期化する下記ファイルができる
prisma/
└─ schema.prisma
.envschema.prismaは下記の通りに修正。
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "sqlite"
url = "file:./dev.db"
}
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
createdAt DateTime @default(now())
}schema.prismaがやっている仕事
①DB接続情報を書く(datasource)
- どのDBを使うか(PostgreSQL / MySQL / SQLite など)
- 接続先はどこか(URL)
②Prisma Client を生成する設定(generator)
- Prismaが TypeScript用のDB操作コードを自動生成する
- @prisma/client として使えるようにする
③テーブル設計を書く(model)
マイグレーションとは
データベースのスキーマを変更するためのプロセス。DBの構造の変更履歴を順番に・安全に・再現できる形で保存する仕組み。
コマンドは下記。
「–name init」部分がオプションとなり、意味としては今回のマイグレーションに「init」という名前をつけて保存させる、ということ。
npx prisma migrate dev --name init実行すると下記ファイルが作成される。「_init」がマイグレーション名として付与されている。
prisma/migrations/
└─ 20260102021616_init/
└─ migration.sql下記で作成したDBが見れる
npx prisma studio- User テーブルが見える(schema.prismaで設定したuserテーブルが作成されている)
- まだデータは 0 件
データを追加してみる
画面上から追加してみる。そして、簡単にpage.tsxで表示させてみる。

import { prisma } from './lib/prisma';
export default async function Home() {
const users = await prisma.user.findMany();
return (
<main>
<h1>Users</h1>
<pre>{JSON.stringify(users, null, 2)}</pre>
</main>
);
}
画面上にはDBに追加した値が表示される。

c.sakyou