Drizzle <> Effect Postgres

WARNING

이 페이지는 Drizzle 버전 1.0.0-beta.9 이상에서 사용 가능한 기능을 설명합니다.

Effect는 현재 PostgreSQL에서만 사용 가능하며, 곧 다른 모든 데이터베이스에도 구현될 예정입니다.

업그레이드 방법은 여기를 참조하세요.

This guide assumes familiarity with:

Drizzle은 @effect/sql-pg 드라이버를 통해 Effect PostgreSQL 연결을 네이티브로 지원합니다.

Step 1 - 패키지 설치

npm
yarn
pnpm
bun
npm i drizzle-orm effect @effect/sql-pg pg
npm i -D drizzle-kit

Step 2 - 드라이버 초기화 및 쿼리 실행

import 'dotenv/config';
import { drizzle } from 'drizzle-orm/effect-postgres';
import { Effect, Redacted } from 'effect';
import { PgClient } from '@effect/sql-pg'
import { types } from 'pg';

const clientLayer = PgClient.layer({
    url: Redacted.make(process.env.DATABASE_URL!);
	  types: {
		  getTypeParser: (typeId, format) => {
			  if ([1184, 1114, 1082, 1186, 1231, 1115, 1185, 1187, 1182].includes(typeId)) {
          return (val: any) => val;
        }
			  return types.getTypeParser(typeId, format);
		  },
	  },
});

const program = Effect.gen(function*() {
	const client = yield* PgClient.PgClient;
	const db = drizzle(client, { logger: true, /*...*/ });
});

await Effect.runPromise(program).pipe(Effect.provide(clientLayer));

다음 단계