DrizzleORM v0.29.4 릴리스
Feb 22, 2024
새로운 기능
🎉 Neon HTTP 배치 처리
더 많은 정보는 Neon 문서와 Neon과 Drizzle 시작하기를 참고하세요.
import { neon } from '@neondatabase/serverless';
import { drizzle } from 'drizzle-orm/neon-http';
import { usersTable } from './schema';
const sql = neon(process.env.DRIZZLE_DATABASE_URL!);
const db = drizzle(sql);
const batchResponse: BatchType = await db.batch([
db.insert(usersTable).values({ id: 1, name: 'John' }).returning({
id: usersTable.id,
}),
db.insert(usersTable).values({ id: 2, name: 'Dan' }),
db.query.usersTable.findMany({}),
db.query.usersTable.findFirst({}),
]);
type BatchType = [
{
id: number;
}[],
NeonHttpQueryResult,
{
id: number;
name: string;
verified: number;
invitedBy: number | null;
}[],
{
id: number;
name: string;
verified: number;
invitedBy: number | null;
} | undefined,
];
개선 사항
database-js
와 PlanetScale
팀 덕분에, database-js
의 기본 동작과 인스턴스를 업데이트했습니다.
database-js
코어 팀의 제안에 따라, connect()
대신 Client
인스턴스를 사용해야 합니다:
import { Client } from '@planetscale/database';
import { drizzle } from 'drizzle-orm/planetscale-serverless';
// 연결 생성
const client = new Client({
host: process.env['DATABASE_HOST'],
username: process.env['DATABASE_USERNAME'],
password: process.env['DATABASE_PASSWORD'],
});
const db = drizzle(client);
경고: 이 버전에서는 주요 변경 사항이 없지만,
0.30.0
버전부터는Client
인스턴스 이외의 것을 사용하려고 하면 오류가 발생합니다.향후 런타임 오류를 방지하기 위해 지금부터 PlanetScale 연결을 변경하는 것을 권장합니다.
이전 문서에서는 connect()
를 사용하도록 안내했고, 이 함수만 drizzle
에 전달할 수 있었습니다. 이번 릴리스에서는 database-js
팀의 제안에 따라 new Client()
를 지원하고 connect()
를 더 이상 사용하지 않도록 변경했습니다. 이번 릴리스에서는 connect()
함수의 결과를 전달하려고 할 때 다음과 같은 경고가 표시됩니다:
경고 메시지
경고: Client 인스턴스를 전달해야 합니다:
import { Client } from "@planetscale/database";
const client = new Client({
host: process.env["DATABASE_HOST"],
username: process.env["DATABASE_USERNAME"],
password: process.env["DATABASE_PASSWORD"],
});
const db = drizzle(client);
0.30.0 버전부터는 Client 인스턴스 이외의 것을 사용하려고 하면 오류가 발생합니다.
향후 런타임 오류를 방지하기 위해 지금부터 필요한 변경을 진행하세요.