0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Prisma導入手順について

Last updated at Posted at 2025-03-07

はじめに

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も再生成が必要です。
公式ドキュメントがわかりやすかったため拝借します。
image.png
青色フローの通り、アプリケーションの変更(スキーマの変更)の度に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
}

参考

以下、ハンズオン手順となります。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?