Drizzle <> Vercel Postgres

This guide assumes familiarity with:

**๊ณต์‹ ์›น์‚ฌ์ดํŠธ**์— ๋”ฐ๋ฅด๋ฉด, Vercel Postgres๋Š” Vercel Functions์™€ ํ†ตํ•ฉ๋˜๋„๋ก ์„ค๊ณ„๋œ ์„œ๋ฒ„๋ฆฌ์Šค SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค.

Drizzle ORM์€ drizzle-orm/vercel-postgres ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” @vercel/postgres ์„œ๋ฒ„๋ฆฌ์Šค ๋“œ๋ผ์ด๋ฒ„์™€ postgesql://์„ ํ†ตํ•ด Vercel Postgres์— ์ ‘๊ทผํ•˜๋Š” postgres ๋˜๋Š” pg ๋“œ๋ผ์ด๋ฒ„๋ฅผ ๋ชจ๋‘ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๊ณต์‹ Vercel Postgres + Drizzle ๋ฌธ์„œ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

1๋‹จ๊ณ„ - ํŒจํ‚ค์ง€ ์„ค์น˜

npm
yarn
pnpm
bun
npm i drizzle-orm @vercel/postgres
npm i -D drizzle-kit

2๋‹จ๊ณ„ - Vercel Postgres ์ค€๋น„

**๊ณต์‹ ๋ฌธ์„œ**์— ๋”ฐ๋ผ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ค์ •ํ•˜์„ธ์š”.

3๋‹จ๊ณ„ - ๋“œ๋ผ์ด๋ฒ„ ์ดˆ๊ธฐํ™” ๋ฐ ์ฟผ๋ฆฌ ์‹คํ–‰

import { drizzle } from 'drizzle-orm/vercel-postgres';

const db = drizzle();

const result = await db.execute('select 1');

๊ธฐ์กด ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ:

import { sql } from '@vercel/postgres';
import { drizzle } from 'drizzle-orm/vercel-postgres';

const db = drizzle({ client: sql })

const result = await db.execute('select 1');

@vercel/postgres ์„œ๋ฒ„๋ฆฌ์Šค ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด TCP๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์„œ๋ฒ„ํ’€ ๋˜๋Š” ์„œ๋ฒ„๋ฆฌ์Šค ํ™˜๊ฒฝ(์˜ˆ: Cloudflare Workers)์—์„œ ์›น์†Œ์ผ“์„ ํ†ตํ•ด Vercel Postgres์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋ฒ„ํ’€ ํ™˜๊ฒฝ์—์„œ Vercel Postgres๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ, @vercel/postgres๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ postgres ๋˜๋Š” **pg**๋ฅผ ํ†ตํ•ด postgesql://๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„๋Š”?