๐Ÿ’Ž Prisma Studio๋กœ ํ˜„์žฌ DB ํ…Œ์ด๋ธ” ํ™•์ธํ•˜๊ธฐ

Jisunminยท2025๋…„ 6์›” 22์ผ
post-thumbnail

API ํ˜ธ์ถœ ์‹œ The table public.User does not exist in the current database ๋ผ๋Š” ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚œ๋‹ค๋ฉด, Prisma๊ฐ€ User ํ…Œ์ด๋ธ”์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ฐพ์ง€ ๋ชปํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆœ์„œ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


1. Prisma Studio๋กœ ํ˜„์žฌ DB ์ƒํƒœ ํ™•์ธ

npx prisma studio

์ด ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์—ด๋ฆฌ๊ณ , ํ˜„์žฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์กด์žฌํ•˜๋Š” ํ…Œ์ด๋ธ” ๋ชฉ๋ก๊ณผ ๊ทธ ์•ˆ์˜ ๋ฐ์ดํ„ฐ๋“ค์„ ์‹œ๊ฐ์ ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ‘‰ User ํ…Œ์ด๋ธ”์ด ์—†๋‹ค๋ฉด, ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ€ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ํ†ตํ•ด ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

2. Prisma์™€ DB ์Šคํ‚ค๋งˆ ๋™๊ธฐํ™” ํ™•์ธ

์ €์˜ ๊ฒฝ์šฐ, ํ…Œ์ด๋ธ”์€ Supabase์— ์กด์žฌํ–ˆ๊ณ , Prisma์˜ schema.prisma ํŒŒ์ผ์—๋„ model User๊ฐ€ ๋™์ผํ•˜๊ฒŒ ์ •์˜๋˜์–ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ Supabase์—์„œ ์ง์ ‘ ์ถ”๊ฐ€ํ•œ ๋ ˆ์ฝ”๋“œ๋Š” Prisma Studio์—์„œ ๋ณด์ด์ง€ ์•Š์•˜๋Š”๋ฐ, ๊ทธ ์ด์œ ๋Š” Prisma๊ฐ€ DB ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์ฆ‰, Supabase DB์—์„œ ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ, Prisma๋Š” ์ด๋ฅผ ์ž๋™์œผ๋กœ ๋ฐ˜์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.


3. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: Prisma ์Šคํ‚ค๋งˆ ์ˆ˜๋™ ๋™๊ธฐํ™”

Prisma๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋™๊ธฐํ™”๋˜๋„๋ก ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด ์ฃผ์„ธ์š”.

npx prisma db pull

์ด ๋ช…๋ น์–ด๋Š” ํ˜„์žฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ๋ฅผ Prisma ์Šคํ‚ค๋งˆ ํŒŒ์ผ๋กœ ๊ฐ€์ ธ์™€ ๋™๊ธฐํ™”๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • Supabase์— User ํ…Œ์ด๋ธ”๊ณผ ๊ด€๋ จ ํ•„๋“œ๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ, Prisma๊ฐ€ ์ด๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Prisma๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ ๋ณ€๊ฒฝ์„ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ์ˆ˜๋™์œผ๋กœ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ˜„์žฌ DB ๊ตฌ์กฐ๋ฅผ Prisma ์Šคํ‚ค๋งˆ ํŒŒ์ผ์— ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.
npx prisma db pull

๋ช…๋ น์–ด ์‹คํ–‰์ด ์™„๋ฃŒ๋˜๋ฉด, Prisma Studio์—์„œ ์ตœ์‹  DB ๊ตฌ์กฐ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Prisma vs Supabase ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ ๊ถŒ์žฅ ๋ฐฉ์‹

1. Supabase ์ง์ ‘ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

  • ์ดˆ๊ธฐ ํ…Œ์ŠคํŠธ๋‚˜ ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ์— ์ ํ•ฉ
  • ๋น ๋ฅด๊ณ  ํŽธ๋ฆฌํ•˜์ง€๋งŒ, Prisma ์Šคํ‚ค๋งˆ์™€ ๋ถˆ์ผ์น˜ ๊ฐ€๋Šฅ์„ฑ ์žˆ์Œ

2. Prisma๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

  • ์šด์˜ ์ค‘์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ถŒ์žฅ
  • ํƒ€์ž… ์•ˆ์ •์„ฑ ๋ณด์žฅ, ์œ ์ง€๋ณด์ˆ˜ ์šฉ์ด
  • ์ฝ”๋“œ ๋‚ด์—์„œ ์ผ๊ด€๋œ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ

๊ฒฐ๋ก 

์šด์˜ ํ™˜๊ฒฝ์—์„œ๋Š” Prisma ํด๋ผ์ด์–ธํŠธ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.
์ดˆ๊ธฐ ์„ธํŒ…์ด๋‚˜ ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ ์‹œ์—๋Š” Supabase ์ฝ˜์†” ์ง์ ‘ ์ž…๋ ฅ๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.
๋‹ค๋งŒ ์œ„์— ์•Œ์•„๋ณธ ๋ฐ”์™€ ๊ฐ™์ด Prsima ์Šคํ‚ค๋งˆ ๋ถˆ์ผ์น˜์— ์‹ ๊ฒฝ์จ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

profile
๋‹จ์ˆœ ์‚ฌ์šฉ์ž๊ฐ€ ์•„๋‹Œ, ์ดํ•ดํ•˜๊ณ  ๋งŒ๋“œ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ก.

0๊ฐœ์˜ ๋Œ“๊ธ€