やりたいこと
prismaのマイグレーションをしたら、DBテーブルに初期データを投入したい
やり方
userテーブルに対して初期データを入れるとします。
まず、prismaフォルダ配下に以下のようなseed.jsを作成します。
seed.js
const { PrismaClient } = require('@prisma/client');
const prisma = new PrismaClient();
async function main() {
console.log('Seeding data...');
// ユーザーを作成する例
const user1 = await prisma.user.create({
data: {
email: 'user1@example.com',
password: 'password1',
name: 'User 1',
},
});
const user2 = await prisma.user.create({
data: {
email: 'user2@example.com',
password: 'password2',
name: 'User 2',
},
});
// 初期データを追加する他の処理...
console.log('Data seeding complete.');
}
main()
.catch(err => {
console.error('Error seeding data:', err);
})
.finally(async () => {
await prisma.$disconnect();
});
次に、package.jsonファイルのscriptsに以下を追記
{
"scripts": {
"seed": "node prisma/seed.js"
}
}
最後、以下のコマンドを実行~
npm run seed
結果として、こんな感じで追加されました~
(すでに手動で一行目のデータを入れたため、2と3行目が今回の結果データとなる)