import { Prisma, PrismaClient } from '@prisma/client' const prisma = new PrismaClient() //필요 설치 : npm install -D typescript ts-node @types/node //Project 디렉토리에서 실행: npx prisma db seed const userDatas: Prisma.UserCreateInput[] = [ { email: 'choi.jh@idcjp.jp', name: '최준흠', password: '1234', role: 'ADMIN' }, { email: 'user1@idcjp.jp', name: '사용자1', password: '1234', role: 'USER' }, { email: 'user2@idcjp.jp', name: '사용자2', password: '1234', role: 'USER' }, { email: 'user3@idcjp.jp', name: '사용자3', password: '1234', role: 'USER' } ] const transferUser = async () => { const users = [] for (const userData of userDatas) { const user = prisma.user.create({ data: userData }) users.push(user) } return await prisma.$transaction(users) } const todoDatas: Prisma.TodoCreateInput[] = [ { title: '타이틀_1', content: '내용_1' }, { title: '타이틀_2', content: '내용_2' }, { title: '타이틀_3', content: '내용_3' }, { title: '타이틀_4', content: '내용_4' }, { title: '타이틀_5', content: '내용_5' }, { title: '타이틀_6', content: '내용_6' }, { title: '타이틀_7', content: '내용_7' }, { title: '타이틀_8', content: '내용_8' }, { title: '타이틀_9', content: '내용_9' }, { title: '타이틀_10', content: '내용_10' }, { title: '타이틀_11', content: '내용_11' }, { title: '타이틀_12', content: '내용_12' }, { title: '타이틀_13', content: '내용_13' }, { title: '타이틀_14', content: '내용_14' }, { title: '타이틀_15', content: '내용_15' } ] const transferTodo = async () => { const todos = [] for (const todoData of todoDatas) { const todo = prisma.todo.create({ data: todoData }) todos.push(todo) } return await prisma.$transaction(todos) } const main = async () => { console.log(`Start User seeding ...`) await transferUser() console.log(`Seeding User finished.`) console.log(`Start Todo seeding ...`) await transferTodo() console.log(`Seeding Todo finished.`) } main() .catch((e) => { console.error(e) process.exit(1) }) .finally(async () => { await prisma.$disconnect() })