Drizzle <> PostgreSQL
This guide assumes familiarity with:
Drizzle는 node-postgres
와 postgres.js
드라이버를 통해 PostgreSQL 연결을 기본적으로 지원합니다.
node-postgres
와 postgres.js
드라이버를 사용하고 Drizzle ORM과 통합하면서 발견한 몇 가지 차이점이 있습니다. 예를 들어:
node-postgres
의 경우pg-native
를 설치하여node-postgres
와 Drizzle의 속도를 약 10% 향상시킬 수 있습니다.node-postgres
는 전역 패치 없이 쿼리별로 타입 파서를 제공할 수 있습니다. 자세한 내용은 Types Docs를 참고하세요.postgres.js
는 기본적으로 준비된 문장(prepared statements)을 사용하며, 이를 선택 해제해야 할 수도 있습니다. 이는 AWS 환경 등에서 잠재적인 문제가 될 수 있으니 참고하세요.- 추가로 기여하고 싶은 내용이 있다면 여기로 PR을 보내주시면 감사하겠습니다.
node-postgres
1단계 - 패키지 설치
npm
yarn
pnpm
bun
npm i drizzle-orm pg
npm i -D drizzle-kit @types/pg
위 명령어를 사용하여 필요한 패키지를 설치합니다. drizzle-orm
과 pg
는 프로젝트에 필수적인 패키지이며, drizzle-kit
과 @types/pg
는 개발 환경에서 사용할 패키지입니다.
2단계 - 드라이버 초기화 및 쿼리 실행
node-postgres
node-postgres with config
// 'pg' 패키지를 설치해야 합니다.
import { drizzle } from 'drizzle-orm/node-postgres';
const db = drizzle(process.env.DATABASE_URL);
const result = await db.execute('select 1');
기존 드라이버를 제공해야 하는 경우:
// 'pg' 패키지를 설치해야 합니다.
import { pgTable, serial, text, varchar } from "drizzle-orm/pg-core";
import { drizzle } from "drizzle-orm/node-postgres";
import { Pool } from "pg";
const pool = new Pool({
connectionString: process.env.DATABASE_URL,
});
const db = drizzle({ client: pool });
const result = await db.execute('select 1');
postgres.js
1단계 - 패키지 설치
npm
yarn
pnpm
bun
npm i drizzle-orm postgres
npm i -D drizzle-kit
위 명령어를 사용하여 필요한 패키지를 설치합니다. drizzle-orm postgres
는 PostgreSQL 데이터베이스와 상호작용하기 위한 ORM(객체 관계 매핑) 라이브러리입니다. -D drizzle-kit
는 개발 환경에서 사용할 도구를 설치하는 옵션입니다.
2단계 - 드라이버 초기화 및 쿼리 실행
postgres.js
postgres.js with config
import { drizzle } from 'drizzle-orm/postgres-js';
const db = drizzle(process.env.DATABASE_URL);
const result = await db.execute('select 1');
기존 드라이버를 제공해야 하는 경우:
// 'postgres' 패키지를 설치해야 합니다.
import { drizzle } from 'drizzle-orm/postgres-js';
import postgres from 'postgres';
const queryClient = postgres(process.env.DATABASE_URL);
const db = drizzle({ client: queryClient });
const result = await db.execute('select 1');