
Supabase์์ ํ
์ด๋ธ์ ์ง์ ์์ฑํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ง์ insertํ๋ ๊ฒฝ์ฐ,
ํฐ๋ฏธ๋์์ prisma db pull ๋ช
๋ น์ด๋ฅผ ์คํํ๋ฉด Prisma ์คํค๋ง์ ์ค์ DB ์ํ ๊ฐ์ ์ฐจ์ด๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
์ด๋ก ์ธํด Prisma๊ฐ ํ์คํ ๋ฆฌ ๋ถ์ผ์น๋ฅผ ๊ฐ์งํ๊ณ ,
์ข
์ข
โ ๏ธreset(์ฌ์ค์ )์ ํ๋ผ๋ ์๋ด ๋ฉ์์ง๊ฐ ๋์ค๊ธฐ๋ ํฉ๋๋ค
reset ๋ช
๋ น์ด๋ฅผ ์คํํ๋ฉด ๋ฐ์ดํฐ๊ฐ ์ญ์ ๋์ด ๋ค์ ์ธํ
ํด์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์๊ณผ ๐์ค๋ณต ์์
๋ฐ์์ด๋ ๊ฒ ํ๋ฉด ๊ฐ๋ฐ ํ๊ฒฝ์์ ๋ฐ์ดํฐ์ ์คํค๋ง๋ฅผ Prisma๊ฐ ์ ๋ด ๊ด๋ฆฌํ๋ฏ๋ก,
์์ธก ๊ฐ๋ฅํ๊ณ ์์ ์ ์ธ DB ์ํ๋ฅผ ์ ์งํ ์ ์์ต๋๋ค.

seed.ts๋ seed.js ํ์ผ์ ํ๋ก์ ํธ ์์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ(์ฌ์ฉ์, ์ํ ๋ฐ์ดํฐ ๋ฑ)๋ฅผ ๋ฃ๊ธฐ ์ํ ์คํฌ๋ฆฝํธ ํ์ผ ์ด๋ฆ์ ๊ด๋ก์
๋๋ค.// seed.ts
import { prisma } from "../lib/prisma.js";
async function main() {
// User ์์ฑ
const user1 = await prisma.user.create({
data: {
userId: "user01",
password: "password123",
name: "ํ๊ธธ๋",
},
});
// Project ์์ฑ (managerId๋ user1.id๋ก ์ฐ๊ฒฐ)
const project1 = await prisma.project.create({
data: {
projectId: "project01",
progress: 0,
deadline: new Date("2025-12-31"),
managerId: user1.id,
},
});
// Task ์์ฑ (userId์ managerId๋ user1.id, projectId ์ฐ๊ฒฐ)
const task1 = await prisma.task.create({
data: {
title: "์ฒซ ๋ฒ์งธ ์์
",
desc: "ํ
์คํธ์ฉ ์์
์ค๋ช
",
status: "To Do",
projectId: project1.id,
userId: user1.id,
managerId: user1.id,
},
});
// Comment ์์ฑ (userId, taskId ์ฐ๊ฒฐ)
await prisma.comment.create({
data: {
comment: "์ฒซ ๋ฒ์งธ ๋๊ธ์
๋๋ค.",
userId: user1.id,
taskId: task1.id,
},
});
console.log("์ด๊ธฐ ๋ฐ์ดํฐ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ถ๊ฐ๋์์ต๋๋ค.");
}
main()
.catch((e) => {
console.error(e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});
node --loader ts-node/esm ./src/scripts/seed.ts

ts-node ์์ด ์๋ ๋ช
๋ น์ด๋ก ์คํํ ์ ์์ต๋๋ค.node ./src/scripts/seed.js

createMany ์ฌ์ฉ ์์await prisma.user.createMany({
data: [
{ userId: "user01", password: "pass01", name: "ํ๊ธธ๋" },
{ userId: "user02", password: "pass02", name: "๊น์ฒ ์" },
{ userId: "user03", password: "pass03", name: "์ด์ํฌ" },
],
skipDuplicates: true, // ์ค๋ณต๋ ๋ฐ์ดํฐ๋ ๋ฌด์
});
createMany๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ํจ์จ์ ์ผ๋ก ์ฝ์ ๊ฐ๋ฅ
skipDuplicates ์ต์ ์ผ๋ก ์ค๋ณต ๋ฐ์ดํฐ ์ฝ์ ๋ฐฉ์ง ๊ฐ๋ฅ
| ๊ตฌ๋ถ | ๋ฐฉ๋ฒ | ์ด์ |
|---|---|---|
| ์ด๊ธฐ ํ์ ๋ฐ์ดํฐ | Seed Script | ํ๊ฒฝ ์ด๊ธฐํ, ๊ธฐ๋ณธ๊ฐ ์ธํ |
| ์ด์ ๋ฐ์ดํฐ | API / ์ดํ๋ฆฌ์ผ์ด์ | ๊ถํ ๊ด๋ฆฌ, ์ ํจ์ฑ ๊ฒ์ฌ, ์์ ์ ์ด์ |
Prisma ๋ง์ด๊ทธ๋ ์ด์
๊ณผ ์๋ฉ ์คํฌ๋ฆฝํธ๋ฅผ ํ์ฉํ๋ฉด
๋ฐ์ดํฐ์ ์คํค๋ง๋ฅผ ์ผ๊ด๋๊ฒ ๊ด๋ฆฌํ ์ ์์ด,
Supabase์์ ๋๊ธฐํ ๋ฌธ์ ๋ฅผ ์ค์ด๊ณ ์์ ์ ์ธ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ง๋ค ์ ์์ต๋๋ค.
โ ๏ธ ์ง์ DB๋ฅผ ์์ ํ๋ ๋์ Prisma๋ฅผ ํตํด ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ข์ต๋๋ค.