Prisma - Node.js

  • 作成日:
  • 最終更新日:2025/11/30

ディレクトリ構造

ディレクトリ構成

  • app
    • generated
    • node_modules
    • prisma
      • schema.prisma
    • .env
    • .gitignore
    • index.ts
    • package-lock.json
    • package.json
    • prisma.config.ts
    • tsconfig.json

必要なパッケージをインストールします。

npm install -D prisma @prisma/client typescript ts-node @types/node

以下のコマンドを実行すると、「 tsconfig.json 」のファイルが作成されます。

npx tsc --init

「 package.json 」を以下のように編集します。

{
  "type": "commonjs",
  "scripts": {
    "start": "ts-node index.ts"
  },
  "devDependencies": {
    "@prisma/client": "^6.19.0",
    "@types/node": "^24.10.1",
    "prisma": "^6.19.0",
    "ts-node": "^10.9.2",
    "typescript": "^5.9.3"
  }
}

「 tsconfig.json 」を以下のように編集します。

{
  "compilerOptions": {
    "target": "ES2022",
    "module": "CommonJS",
    "esModuleInterop": true,
    "strict": true,
    "skipLibCheck": true
  }
}

以下のコマンドを実行するとprisma/schema.prisma.envが生成されます。

npx prisma init --datasource-provider mysql

schema.prismaを以下のように編集します。

// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?
// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init

generator client {
  provider = "prisma-client-js"
  output   = "../generated/prisma"
}

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

.envを自分のデータベースの環境に合わせて変更します。

DATABASE_URL="mysql://root:mypassword@localhost:3306/your_existing_db_name"

以下のコマンドを実行すると、users や sequelizemeta などの既存テーブルが model 定義として schema.prisma に追加されます。

npx prisma db pull

schema.prismaが以下のように変更されます。

generator client {
  provider = "prisma-client-js"
  output   = "../generated/prisma"
}

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

model sequelizemeta {
  name String @id @unique(map: "name") @db.VarChar(255)
}

model users {
  id         Int      @id @default(autoincrement())
  name       String?  @db.VarChar(255)
  age        Int?
  created_at DateTime @db.DateTime(0)
  updated_at DateTime @db.DateTime(0)
}

以下のコマンドを実行し、Prisma Client を作成します。

npx prisma generate

「 index.ts 」のファイルを作成し以下のようにします。

import { PrismaClient } from "./generated/prisma/index.js";

const prisma = new PrismaClient();

async function main() {
  const users = await prisma.users.findMany();
  console.log(users);
}

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

アプリケーションの実行します。

npx ts-node index.ts