Prisma を使用して作成されたデータベースに、seedデータを保存していきます。seedデータとは初期データ、ダミーデータのことを指し、動作確認などに使用されます。
環境・ファイル構成
- “next”: “13.4.6”
- “@faker-js/faker”: “^8.0.2”,
- “@prisma/client”: “^4.16.1”,
|-- prisma //
| |-- schema.prisma
| `-- seed.js
|-- src //
|-- package.json
model Qaa {
id String @id
question String
answer String
}
データベースを作成し、Qaa という名前でテーブルが作成された状態から、これにseedデータを保存していきます。prisma-seed
seedデータを保存する
prisma ディレクトリにseed.js ファイルを作成します。
const { PrismaClient } = require("@prisma/client");
const { faker } = require("@faker-js/faker/locale/ja");
const prisma = new PrismaClient();
async function main() {
await prisma.qaa.deleteMany();
const count = 50;
const qaas = [];
for (let i = 0; i < count; i++) {
const qaa = {
question: faker.lorem.word(),
answer: faker.lorem.sentence(),
};
qaas.push(qaa);
}
const add = async () => await prisma.qaa.createMany({ data: qaas });
add();
}
main()
.catch((e) => {
console.log(e);
})
.finally(async () => {
await prisma.$disconnect();
});
パッケージを読み込むには、import ではなく、require を使用します。
"version": "0.1.0",
"prisma": {
"seed": "node prisma/seed.js"
},
prisma.seed フィールドを package.json ファイルに追加します。
npx prisma db seed
コマンドを実行すると、seedデータが保存されます。