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 인스턴스 이외의 것을 사용하려고 하면 오류가 발생합니다.
향후 런타임 오류를 방지하기 위해 지금부터 필요한 변경을 진행하세요.