はじめに
JavaScriptやTypeScriptでデータベースを扱う際、ORM(Object-Relational Mapping)は欠かせません。数あるORMの中でも「Prisma」は、高速かつ直感的にデータベース操作ができるツールとして人気を集めています。本記事では、Prismaの特徴、基本的な使い方、他のORMとの違い、導入方法、よく使うメソッドの解説、そして検証用のデータベースの準備方法まで、実際にコピペするだけで使える形で解説します。
Prismaの特徴
Prismaは以下のような特徴を持つORMです。
- TypeScriptフレンドリー:型安全なクエリが可能
- 直感的なデータモデル:Prisma Schemaを使い、データベース構造を簡単に定義
- 自動マイグレーション:データモデルの変更を簡単にデータベースへ反映
- リレーショナルDBとNoSQLの両方をサポート:PostgreSQL、MySQL、SQLite、MongoDBなどに対応
- パフォーマンスの最適化:バッチ処理やコネクション管理が効率的に行われる
他のORMとの違い
特徴 | Prisma | TypeORM | Sequelize |
---|---|---|---|
型安全性 | ◎ | △ | × |
設定の簡単さ | ◎ | △ | △ |
マイグレーションの容易さ | ◎ | ○ | △ |
データ取得の直感性 | ◎ | △ | △ |
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を活用し、効率的なデータベース管理を実現しましょう!
コメント