1
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 8】Docker起動時にTodoアプリへ初期データを投入する

1
Posted at

はじめに

現在Todoアプリを React/Hono/Prisma/PostgreSQL/Docker で作成しています。
その際に初期データの投入機能をつけたので備忘録として残しておきます。

前提

  • DockerですでにTodoアプリが完成している
  • Prisma v8(RC版)を使用している

やったこと

1. seedファイルの作成

backend/src/prisma/seed.ts
import { db } from "./db";

for (const title of ["勉強", "掃除", "買い物"]) {
  await db.orm.public.Todo.create({
    title,
    completed: false,
    createdAt: new Date().toISOString(),
  });
}

await db.close();

3つのTodoを登録する処理です。

2. Dockerfileへのコマンド追加

APIコンテナのDockerfileにseed.tsを実行するためのコマンド
npx tsx src/prisma/seed.ts
を追加します。

backend/Dockerfile
FROM node:22-alpine

WORKDIR /app

COPY . .

RUN npm install

EXPOSE 3000

- CMD ["sh", "-c", "npx prisma contract emit && npx prisma db init && npm run dev"]
+ CMD ["sh", "-c", "npx prisma contract emit && npx prisma db init && npx tsx src/prisma/seed.ts && npm run dev"]

おわりに

初期データの投入をするのは初めてでしたが、特別な処理があるわけではなくデータを追加するためのスクリプトをコンテナ起動時に実行すれば良いだけ、ということを知ることができました。

1
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
1
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?