タグ: prisma

  • PrismaをJavaScriptプロジェクトで使ってMySQLを簡単に操作する方法

    この記事では、JavaScriptプロジェクトにPrismaを導入して、MySQLデータベースに接続し、簡単に操作する方法をわかりやすく解説します。

    Prismaとは?

    Prismaは、Node.jsやJavaScriptプロジェクトで使えるORM(Object-Relational Mapping)ツールです。これを利用すると、SQLを書かずに直感的で安全にデータベースを操作できます。

    Step1:Prismaのインストール

    まず、npmを使ってPrismaをプロジェクトに追加します。

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

    次に、Prismaの初期設定を行います。

    npx prisma init

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

    Step2:データベース接続設定

    schema.prismaを開き、MySQLデータベースへの接続設定を記述します。

    datasource db {
      provider = "mysql"
      url      = env("DATABASE_URL")
    }
    
    generator client {
      provider = "prisma-client-js"
    }

    プロジェクトのルートにある.envファイルに接続情報を設定します。

    DATABASE_URL="mysql://ユーザー名:パスワード@ホスト名:ポート番号/データベース名"

    Step3:データモデルの定義

    次に、データモデルを定義します。

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

    Step4:データベースに反映

    モデルの設定が終わったら、次のコマンドでデータベースに反映させます。

    npx prisma migrate dev --name init

    これでPrismaがMySQLにテーブルを作成します。

    Step5:JavaScriptでPrismaを使う

    以下のようにPrismaを使ってデータを操作できます。

    // PrismaClientのインスタンスを生成
    const { PrismaClient } = require('@prisma/client');
    const prisma = new PrismaClient();
    
    async function main() {
      // ユーザーの作成
      const newUser = await prisma.user.create({
        data: {
          name: 'John Doe',
          email: 'john@example.com'
        }
      });
    
      console.log('作成したユーザー:', newUser);
    
      // ユーザー一覧を取得
      const users = await prisma.user.findMany();
      console.log('ユーザー一覧:', users);
    }
    
    main()
      .then(async () => {
        await prisma.$disconnect();
      })
      .catch(async (e) => {
        console.error(e);
        await prisma.$disconnect();
        process.exit(1);
      });

    まとめ

    Prismaを使えば、JavaScriptプロジェクトから簡単かつ安全にMySQLを操作でき、開発速度を大幅に向上させることができます。ぜひプロジェクトで試してみてください。