๐Ÿ“š ๋ฐ์ดํ„ฐ ์‚ญ์ œ ์—†์ด Prisma ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๊ธฐ

Jeanยท2025๋…„ 2์›” 2์ผ

Prisma์—์„œ ๋ชจ๋ธ์„ ์ˆ˜์ •ํ•˜๊ณ  ์ ์šฉ์„ ์œ„ํ•ด npx prisma migrate dev ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค

...

โœ” We need to reset the MySQL database "๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์ด๋ฆ„" at "localhost:3306"
Do you want to continue? All data will be lost. โ€ฆ no

Reset cancelled.

์ด์ „์— ์Œ“์•„๋’€๋˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—†์•ด๋‹ค๋Š” ๋ฌด์‹œ๋ฌด์‹œํ•œ ๋ง์„ ํ•˜๊ธธ๋ž˜
๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ดค๋‹ค..


โœ… ๋ฐฉ๋ฒ• 1: prisma db push ์‚ฌ์šฉ (๋ฐ์ดํ„ฐ ์œ ์ง€)

npx prisma db push ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ

npx prisma db push

๐ŸŒŸ ํŠน์ง•

๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ์Šคํ‚ค๋งˆ๋ฅผ ์—…๋ฐ์ดํŠธ
ํ•˜์ง€๋งŒ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ธฐ๋ก์ด ๋‚จ์ง€ ์•Š๋Š”๋‹ค

โœ… ๋ฐฉ๋ฒ• 2: ์ˆ˜๋™์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํŒŒ์ผ ์ˆ˜์ • ํ›„ prisma migrate deploy ์‹คํ–‰

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํŒŒ์ผ์„ ์ง์ ‘ ์ˆ˜์ •ํ•œ ํ›„ ๋ฐฐํฌ

  1. ํ˜„์žฌ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํŒŒ์ผ ํ™•์ธ
npx prisma migrate status
โ†’ ์‹คํ–‰๋˜์ง€ ์•Š์€ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ
  1. ์ƒˆ๋กœ์šด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ƒ์„ฑ
npx prisma migrate dev --create-only
โ†’ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ SQL ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์ง€๋งŒ ์ฆ‰์‹œ ์ ์šฉํ•˜์ง€์•Š๋Š”๋‹ค
  1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ง์ ‘ ์‹คํ–‰
ALTER TABLE Users MODIFY COLUMN nickname VARCHAR(255) NULL;
ALTER TABLE Users MODIFY COLUMN password VARCHAR(255) NULL;
  1. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ ์šฉํ•˜๊ธฐ
npx prisma migrate deploy
โ†’ ์ˆ˜์ •๋œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ Prisma์— ๋ฐ˜์˜

โœ… ๋ฐฉ๋ฒ• 3: ๊ธฐ์กด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํžˆ์Šคํ† ๋ฆฌ ์ดˆ๊ธฐํ™” ํ›„ ๋‹ค์‹œ ์ ์šฉ

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํžˆ์Šคํ† ๋ฆฌ(migrations ํด๋”)๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ, ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋„ ์‚ญ์ œํ•˜์ง€ ์•Š๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

  1. ํ˜„์žฌ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ ์šฉ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ
npx prisma migrate resolve --applied "๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํŒŒ์ผ ์ด๋ฆ„"
โ†’ ๊ฐ€์žฅ ์ตœ๊ทผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ ์šฉ๋œ ๊ฒƒ์œผ๋กœ Prisma์—๊ฒŒ ์•Œ๋ ค์ฃผ๊ธฐ
  1. ์ƒˆ๋กœ์šด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ถ”๊ฐ€ ํ›„ ๋ฐฐํฌ
npx prisma migrate dev
โ†’ ๋ฐ์ดํ„ฐ ์‚ญ์ œ ์—†์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋งŒ ์ ์šฉ๋œ๋‹ค

๐ŸŒŸ ํŠน์ง•

๊ธฐ์กด์˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ์œ ์ง€๋จ


๐Ÿงน ์ •๋ฆฌ

๋ฐฉ๋ฒ•๋ฐ์ดํ„ฐ ์‚ญ์ œ ์—ฌ๋ถ€ํŠน์ง•
prisma db pushโŒ ์œ ์ง€๋จ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ธฐ๋ก ์—†์Œ, ๋น ๋ฅธ ์ ์šฉ
prisma migrate dev --create-only + ์ˆ˜๋™ ์‹คํ–‰โŒ ์œ ์ง€๋จ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ SQL์„ ์ง์ ‘ ์ ์šฉ
prisma migrate resolveโŒ ์œ ์ง€๋จ๊ธฐ์กด ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํžˆ์Šคํ† ๋ฆฌ ์œ ์ง€

๋‚˜๋Š” ํ”„๋กœ์ ํŠธ์ดˆ๊ธฐ์ด๊ณ  ๊ฐ„๋‹จํ•œ ์ˆ˜์ •์ด์˜€๊ธฐ์— ์ฒซ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์„ ์ด์šฉํ–ˆ๋‹ค
DB์— ์ž˜ ์ ์šฉ ๋˜์–ด์„œ ๋งŒ์กฑ!!!

profile
ํ–‡๋‚ด๊ธฐ ๊ฐœ๋ฐœ์ž ์ง€๋ง์ƒ

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