はじめに
Prismaを導入する手順について簡単にまとめます。
前提
Node.jsはインストール済みとします。
そして任意のnpmプロジェクトフォルダを用意します。
mkdir hello-prisma
cd hello-prisma
npm init -y
Prismaのインストール
まずPrismaをインストールを行います。
npm install prisma --save-dev
その後、Prismaの初期化を行います。
npx prisma init --datasource-provider sqlite
このコマンドを実行することで、プロジェクトに prisma ディレクトリが作成され、その中に schema.prismaファイルが含まれます。
今回は--datasource-provider sqlite
を指定することでSQLiteを使用するように初期化を行います。
Prismaスキーマの設定
次にスキーマと呼ばれるデータモデルを定義します。
初期化時に生成されたschema.prismaファイルに記述します。
ユーザー情報をDB保存することを例にして見ていきます。
model User {
id Int @id @default(autoincrement())
name String
email String @unique
createdAt DateTime @default(now())
}
初回のPrisma Migrate
モデルを定義した後、データベースに反映させる必要があります。
スキーマ定義の通りに、データベース構造を生成します。
以下のコマンドを実行してマイグレーションを作成します。
npx prisma migrate dev --name init
これにより、データベースのスキーマが更新され、Prismaクライアントが自動的に生成されます。
Prisma Clientの使用
Prisma Clientとは
Prisma Clientを使って、アプリケーション内でデータベースにアクセスします。
作成したスキーマに対してDB操作を行うためのクライアントというイメージです。
以下のコマンドを実行することで、スキーマに合わせて自動生成されます。
npx prisma generate
ここでポイントとしてPrisma スキーマに変更が加えられる度に、生成された Prisma Clientも再生成が必要です。
公式ドキュメントがわかりやすかったため拝借します。
青色フローの通り、アプリケーションの変更(スキーマの変更)の度にprisma generate
を実行する流れとなります
Prisma Clientのインスタンス化
Prismaクライアントは、生成されたクライアントをインポートしてインスタンス化することで使用できます。
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
試してみる
例えば、ユーザーを作成するコードは以下のようになります。
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
async function main() {
const newUser = await prisma.user.create({
data: {
name: 'Taro',
email: 'taro@example.com',
},
});
console.log(newUser);
}
main()
.catch((e) => console.error(e))
.finally(async () => {
await prisma.$disconnect();
});
script.jsを作成して上記を記述した後、スクリプトを実行します。
node script.js
以下のようにプロンプトに表示されます。
ユーザーが保存されていること確認できます。
{
id: 1,
name: 'Taro',
email: 'taro@example.com',
createdAt: 2025-03-07T19:51:04.223Z
}
参考
以下、ハンズオン手順となります。