概要
RemixにてPrismaのseedを使ってテーブルにデータを追加する方法を簡単にまとめる。
前提
下記の記事を参考にusersテーブルが作成されていること。
方法
-
prismaディレクトリ直下にseed.tsというファイルを作成し、下記の様に記載する。(
touch prisma/seed.ts
を実行して作成した。)prisma/seed.tsimport { PrismaClient } from '@prisma/client'; const prisma = new PrismaClient(); async function main() { const users = [ { name: 'Alice', email: 'alice@example.com' }, { name: 'Bob', email: 'bob@example.com' }, { name: 'Charlie', email: 'charlie@example.com' }, { name: 'David', email: 'david@example.com' }, { name: 'Eve', email: 'eve@example.com' }, { name: 'Frank', email: 'frank@example.com' }, { name: 'Grace', email: 'grace@example.com' }, { name: 'Helen', email: 'helen@example.com' }, { name: 'Isaac', email: 'isaac@example.com' }, { name: 'Judy', email: 'judy@example.com' } ]; for (const user of users) { await prisma.users.create({ data: user }); } console.log('10 users created.'); } main() .catch((e) => { console.error(e); process.exit(1); }) .finally(async () => { await prisma.$disconnect(); });
-
下記を実行して関連パッケージをインストールする。
npm install -D typescript ts-node @types/node
-
下記の内容をpackage.jsonのscriptsの中に記載する。
package.json"seed": "node --loader ts-node/esm prisma/seed.ts"
-
下記を実行してマイグレーションを行う。
npx prisma migrate dev
-
下記を実行してseedの実行を行う。
npm run seed
-
一旦テーブル内のデータだけを消してからseedしたい場合下記を実行する。
npx prisma migrate reset npm run seed
参考文献