2025-04-13

PrismaでSeedデータを作成する

Prismaでシードデータを生成するためのライブラリを調べる

  1. snpalet prismaの前のバージョンまでしかサポートしてない
  2. prisma-fabbrica vitest環境で使えないjestなら使えそう
  3. fishery すべてのカラムのデータを指定しないとだめ

シードデータは手で作ったほうが実データに近づいて良いと思ったので、RailsのFactory botのような使い方ができるようになるfisheryを使うことにしました

Prismaでシードデータを生成する

https://www.prisma.io/docs/orm/prisma-migrate/workflows/seeding

package.jsonに以下を追加

prisma/seed.tsを作成して、prisma db seedを実行すると、prisma/seed.tsが実行されて、シードデータが生成されます。

fisheryでシードデータを生成する

fisheryというライブラリを使ってシードデータの生成をテストでも使用できるように共通化します。

https://fakerjs.dev/guide/

fisheryでシードデータ作成の巻子を作るときに、fakerを使って実際のデータに近いシードデータを生成できるようにします。

fisheryを設定する

以下のようにFactory関数を定義しました。

呼び出すときはannouncementFactory.create()という感じで呼び出します。

Thanks for the visit Nozo Blog