DrizzleORM v0.29.4 릴리스
Feb 22, 2024
새로운 기능
🎉 Neon HTTP Batch
자세한 정보는 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<never>,
{
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';
// create the connection
const client = new Client({
host: process.env['DATABASE_HOST'],
username: process.env['DATABASE_USERNAME'],
password: process.env['DATABASE_PASSWORD'],
});
const db = drizzle(client);주의: 이 버전에서는 Breaking Change가 없지만,
0.30.0버전부터는Client인스턴스가 아닌 다른 것을 사용하려고 하면 오류가 발생합니다.향후 런타임 오류를 방지하기 위해 지금부터 PlanetScale 연결을 변경하는 것을 권장합니다.
이전 문서에서는 connect()를 사용하도록 안내했고, 이 함수만 drizzle에 전달할 수 있었습니다. 이번 릴리스에서는 database-js 팀의 제안에 따라 new Client() 지원을 추가하고 connect()를 더 이상 사용하지 않도록(deprecated) 합니다. 이 릴리스에서는 connect() 함수 결과를 전달하려고 할 때 warning이 표시됩니다:
경고 텍스트
Warning: You need to pass an instance of 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);
Starting from version 0.30.0, you will encounter an error if you attempt to use anything other than a Client instance.
Please make the necessary changes now to prevent any runtime errors in the future