JavaScript ORM「Prisma」完全ガイド

目次

はじめに

JavaScriptやTypeScriptでデータベースを扱う際、ORM(Object-Relational Mapping)は欠かせません。数あるORMの中でも「Prisma」は、高速かつ直感的にデータベース操作ができるツールとして人気を集めています。本記事では、Prismaの特徴、基本的な使い方、他のORMとの違い、導入方法、よく使うメソッドの解説、そして検証用のデータベースの準備方法まで、実際にコピペするだけで使える形で解説します。

Prismaの特徴

Prismaは以下のような特徴を持つORMです。

  • TypeScriptフレンドリー:型安全なクエリが可能
  • 直感的なデータモデル:Prisma Schemaを使い、データベース構造を簡単に定義
  • 自動マイグレーション:データモデルの変更を簡単にデータベースへ反映
  • リレーショナルDBとNoSQLの両方をサポート:PostgreSQL、MySQL、SQLite、MongoDBなどに対応
  • パフォーマンスの最適化:バッチ処理やコネクション管理が効率的に行われる

他のORMとの違い

特徴PrismaTypeORMSequelize
型安全性×
設定の簡単さ
マイグレーションの容易さ
データ取得の直感性

Prismaは型安全性やシンプルな設定が特徴で、TypeScriptとの相性が抜群です。

プロジェクトの始め方

Node.jsプロジェクトの作成

まず、新しいNode.jsプロジェクトを作成します。

mkdir my-prisma-app
cd my-prisma-app
npm init -y

Prismaの導入

npm install prisma --save-dev
npx prisma init

このコマンドを実行すると、プロジェクトに prisma/schema.prisma という設定ファイルが作成されます。

データベースの設定

prisma/schema.prisma を開いて、以下のように設定を変更します(PostgreSQLを使用する場合)。

// schema.prisma

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

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

環境変数 .env にデータベースの接続情報を記述します。

DATABASE_URL="postgresql://user:password@localhost:5432/mydb"

データベースの立ち上げ

Dockerを使用してPostgreSQLを立ち上げる場合、以下のコマンドを実行します。

docker run --name postgres -e POSTGRES_USER=user -e POSTGRES_PASSWORD=password -e POSTGRES_DB=mydb -p 5432:5432 -d postgres

ローカルにPostgreSQLがインストールされている場合は、適宜設定してください。

データベースのセットアップ

以下のコマンドでマイグレーションを実行します。

npx prisma migrate dev --name init

モデルの定義とCRUDの実装

モデルの作成

例えば、ユーザー情報を管理するための User モデルを作成します。

model User {
  id    Int     @id @default(autoincrement())
  name  String
  email String  @unique
  posts Post[]
}

model Post {
  id      Int    @id @default(autoincrement())
  title   String
  content String?
  userId  Int
  user    User  @relation(fields: [userId], references: [id])
}

マイグレーションを適用します。

npx prisma migrate dev --name add_user_model

Prisma Clientの導入

npm install @prisma/client

CRUD操作の実装と実行結果

以下のコードで基本的なCRUD処理が可能になります。

import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();

async function main() {
  // ユーザー作成
  const user = await prisma.user.create({
    data: {
      name: "Alice",
      email: "alice@example.com",
    },
  });
  console.log("Created user:", user);

  // ユーザー一覧取得
  const users = await prisma.user.findMany();
  console.log("Users:", users);
}

main()
  .catch(e => console.error(e))
  .finally(async () => {
    await prisma.$disconnect();
  });

実行結果

Created user: { id: 1, name: 'Alice', email: 'alice@example.com' }
Users: [ { id: 1, name: 'Alice', email: 'alice@example.com' } ]

まとめ

本記事では、Prismaの基本的な使い方について解説しました。

  • Prismaは型安全かつ直感的なORMである
  • インストールは npm install prisma で簡単に行える
  • prisma/schema.prisma でデータモデルを定義
  • npx prisma migrate dev でデータベースのマイグレーションを適用
  • Prisma Clientを使えば簡単にCRUD操作が可能
  • SQLiteを使えばローカル環境でも気軽に試せる

Prismaを活用し、効率的なデータベース管理を実現しましょう!

参考記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

新卒4年目です。spring boot, jquery, vue を使ってフロントエンド開発、quarkus、azure kubernetesを使ってバックエンドを作ってました。 今は、UXデザイナーを目指して勉強中です! よろしくお願いします。

コメント

コメントする

CAPTCHA


目次