133 lines
2.4 KiB
TypeScript
133 lines
2.4 KiB
TypeScript
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()
|
|
})
|