3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

NextjsにPrismaの導入

Last updated at Posted at 2025-03-03

Nextjsとデータベースを繋げる機能,prismaに関する記事です

どういうものか

Prisma は、データベースとやり取りするためのモダンなツールセットを提供する次世代 ORM(オブジェクト・リレーショナル・マッピング)です。主に Node.jsおよび TypeScript プロジェクトで使用され、開発者が効率的にデータベース操作を行うのを助けます。以下は Prisma の主要な機能です

Prisma Schema

Prisma は、独自のスキーマ言語(Prisma Schema)を使用してデータベースモデルを定義します。これにより、データベーススキーマの設計がシンプルかつ明確になります。

Prisma Client

Prisma Client は、データベースに対してクエリやミューテーションを実行するための自動生成された TypeScript/JavaScript クライアントです。タイプセーフなクエリを簡単に書くことができます。

Prisma Migrate

Prisma Migrate は、データベースの移行を管理するツールです。スキーマの変更をバージョン管理し、データベースの整合性を保ちながらスムーズに移行を行えます。

Prisma Studio

Prisma Studio は、データベースデータを視覚的に操作するための GUI です。開発者はデータベースの内容をブラウズ、編集、管理することができます。

導入方法

Prisma のインストール

Prisma をプロジェクトにインストールします。以下のコマンドを実行して、Prisma とそのクライアントをインストールします。

npm install @prisma/client
npm install prisma --save-dev

Prisma の初期化

Prisma を初期化して、Prisma スキーマファイルを作成します。以下のコマンドを実行します。
これにより、prisma フォルダと schema.prisma ファイルがプロジェクトに追加されます。

npx prisma init

データベースの設定

prisma/schema.prisma ファイルを開き、データベースの接続設定を行います。例えば、
SQLite データベースを使用する場合は以下のように設定します。

datasource db {
  provider = "sqlite"
  // 使用するデータベースの種類
  url      = "file:./dev.db"
}

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

データベースモデルの定義

schema.prisma ファイルにデータベースモデルを定義します。例えば、ユーザーモデルを追加する場合は以下のようにします。

model User {
  id    Int     @id @default(autoincrement())
  name  String
  email String  @unique
}

データベースのマイグレーション

データベースのマイグレーションを実行して、データベーススキーマを適用します。以下のコマンドを実行します。

npx prisma migrate dev --name init

Prisma クライアントの生成

Prisma クライアントを生成します。以下のコマンドを実行します。

npx prisma generate

Next.jsの場合で Prisma クライアントを使用

Prisma クライアントをインポートして、Next.js の API ルートやページコンポーネントで使用します。例えば、pages/api/users.js ファイルを作成し、以下のように Prisma クライアントを使用します。

import { PrismaClient } from '@prisma/client';

const prisma = new PrismaClient();

export default async function handler(req, res) {
  const users = await prisma.user.findMany();
  res.json(users);
}

これで、Next.js プロジェクトに Prisma を導入し、データベースと連携する準備が整いました。

まとめた方法

1,初期化まで一括導入

npm install @prisma/client
npm install prisma --save-dev
npx prisma init

2,schema.prismaの定義(要編集)

datasource db {
  provider = "sqlite"
  url      = "file:./dev.db"
}

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

model User {
  id    Int     @id @default(autoincrement())
  name  String
  email String  @unique
}

3,マイグレーションでデータベース作成 ※ここでエラーが起きやすいので注意

npx prisma migrate dev --name init

4,Prisma クライアントを生成、これでデータの取出、追加、削除が可能に

npx prisma generate

便利ツール

データベースを視覚的にわかりやすく

npx prisma studio

Prisma スキーマのプッシュ

データベースにスキーマを直接反映させます。テスト環境での使用に適しています。

npx prisma db push

Prisma スキーマのフォーマット

Prisma スキーマファイルを整形します

npx prisma format

Prisma スキーマ(エラー)の検証

Prisma スキーマにエラーがないか検証します。

npx prisma validate
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?