TIL_ Prisma + PostgreSQL + AWS RDS / Next.js API routes

์ •์œค์ˆ™ยท2023๋…„ 6์›” 25์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
176/192
post-thumbnail

๐Ÿ“’ ์˜ค๋Š˜์˜ ๊ณต๋ถ€

1. Prisma + PostgreSQL + AWS RDS

prisma ์„ค์น˜

npm i prisma --save-dev
npm i @prisma/client

prisma schema ์ƒ์„ฑ

npx prisma init

  • prisma ํด๋”, schema.prisma ํŒŒ์ผ ์ƒ์„ฑ ๋จ

DB ์—ฐ๊ฒฐ

  • AWS ๋“ฑ DB ์ƒ์„ฑ ํ›„ ์—ฐ๊ฒฐํ•˜๊ธฐ

  • AWS์˜ RDS(Relational Database Service)

    • .envํŒŒ์ผ ์ƒ์„ฑ
    • RDS๋กœ ์ƒ์„ฑํ•œ DB์˜ ์—”๋“œํฌ์ธํŠธ, id, pw, port ์‚ฌ์šฉ
      DATABASE_URL=postgresql://id:pw@์—”๋“œํฌ์ธํŠธ:port๋ฒˆํ˜ธ/kall?schema=public
    • postgreSQL์€ ๋ณดํ†ต port๋ฒˆํ˜ธ๋กœ 5432 ์‚ฌ์šฉ

schema.prisma ์ƒ์„ฑ

1. db ๊ตฌ์กฐ์— ๋”ฐ๋ผ ํŒŒ์ผ ์ˆ˜์ •

  • model์€ ํ•˜๋‚˜์˜ Table์„ ์˜๋ฏธ
  • Contact๋ผ๋Š” Table์ด ์ƒ์„ฑ ๋จ

2. prisma format ์ ์šฉ

  • npx prisma format
    • ์ฝ”๋“œ ์Šคํƒ€์ผ ๊ตฌ์กฐ ์œ ์ง€ ๋ฐ ๊ฐ€๋…์„ฑ์„ ๋†’์—ฌ์คŒ
    • ์‹คํ–‰ ์ „
    • ์‹คํ–‰ ํ›„
    • ์ฝ”๋“œ ์ƒ‰์ƒ ๊ตฌ๋ณ„์€ ์•„๋ž˜ ํ™•์žฅํŒฉ ์„ค์น˜

3. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ ์šฉํ•˜๊ธฐ

(1) ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ƒ์„ฑ
npx prisma migrate dev โ€”name <migration-name>

(2) ์ ์šฉ
npx prisma migrate dev
  • ex. contact๋ผ๋Š” ์ด๋ฆ„์˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ƒ์„ฑ ํ›„ ์ ์šฉ
    npx prisma migrate dev โ€”name contact

schema.prisma model ์ถ”๊ฐ€ ๋ฐ ์ˆ˜์ • ํ›„

2. prisma format ์ ์šฉ

3. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ ์šฉํ•˜๊ธฐ

4. upedate ํ•˜๊ธฐ

  • npx prisma generate
    • ํŠนํžˆ prisma๋ฅผ ์ˆ˜์ •ํ•œ ๋ธŒ๋žœ์น˜๊ฐ€ ์•„๋‹ˆ๊ณ , dev ๋“ฑ์˜ ๋ธŒ๋žœ์น˜๋ฅผ pull๋ฐ›์€ ๋กœ์ปฌ์˜ ๊ฒฝ์šฐ ์ด ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์•ผ update๊ฐ€ ์ ์šฉ๋œ prisma๊ฐ€ ์ž˜ ์‹คํ–‰ ๋จ

prisma client ์ƒ์„ฑ

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์กฐ์ž‘์„ ํ•˜๊ธฐ ์œ„ํ•ด prisma client ์ƒ์„ฑ

2. Next.js API routes

profile
ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž

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