DrizzleORM v0.29.5 릴리스
  Mar 6, 2024 
 새로운 기능
🎉 WITH UPDATE, WITH DELETE, WITH INSERT
이제 WITH 구문을 INSERT, UPDATE, DELETE와 함께 사용할 수 있습니다.
사용 예제:
const averageAmount = db.$with('average_amount').as(
	db.select({ value: sql`avg(${orders.amount})`.as('value') }).from(orders),
);
const result = await db
	.with(averageAmount)
	.delete(orders)
	.where(gt(orders.amount, sql`(select * from ${averageAmount})`))
	.returning({
		id: orders.id,
	});with "average_amount" as (select avg("amount") as "value" from "orders") 
delete from "orders" 
where "orders"."amount" > (select * from "average_amount") 
returning "id";더 많은 예제는 아래 문서를 참고하세요:
🎉 마이그레이션 테이블에 커스텀 스키마와 이름 지정 가능
- 마이그레이션을 위한 커스텀 테이블
기본적으로 실행된 마이그레이션에 대한 모든 정보는 데이터베이스 내부의 __drizzle_migrations 테이블에 저장됩니다. PostgreSQL의 경우 drizzle 스키마 안에 저장됩니다. 하지만 여러분은 이 기록을 어디에 저장할지 설정할 수 있습니다.
데이터베이스 내부에 저장된 마이그레이션에 커스텀 테이블 이름을 추가하려면 migrationsTable 옵션을 사용해야 합니다.
사용 예제:
await migrate(db, {
	migrationsFolder: './drizzle',
	migrationsTable: 'my_migrations',
});- 마이그레이션을 위한 커스텀 스키마
PostgreSQL 데이터베이스에서만 작동합니다.
데이터베이스 내부에 저장된 마이그레이션에 커스텀 스키마 이름을 추가하려면 migrationsSchema 옵션을 사용해야 합니다.
사용 예제:
await migrate(db, {
	migrationsFolder: './drizzle',
	migrationsSchema: 'custom',
});🎉 SQLite Proxy 배치 및 관계형 쿼리 지원
SQLite 프록시에 대한 더 자세한 정보는 문서에서 확인할 수 있습니다.
- 
이제 SQLite 프록시 드라이버에서 .query.findFirst와.query.findMany구문을 사용할 수 있습니다.
- 
SQLite 프록시는 다른 드라이버와 마찬가지로 배치 요청을 지원합니다. 전체 문서를 확인해 보세요. 배치 쿼리를 위해 특정 콜백을 지정하고 프록시 서버에 요청을 처리해야 합니다: 
import { drizzle } from 'drizzle-orm/sqlite-proxy';
type ResponseType = { rows: any[][] | any[] }[];
const db = drizzle(
	async (sql, params, method) => {
		// 단일 쿼리 로직
	},
	// 새로운 배치 콜백
	async (
		queries: {
			sql: string;
			params: any[];
			method: 'all' | 'run' | 'get' | 'values';
		}[],
	) => {
		try {
			const result: ResponseType = await axios.post(
				'http://localhost:3000/batch',
				{ queries },
			);
			return result;
		} catch (e: any) {
			console.error('SQLite 프록시 서버에서 오류 발생:', e);
			throw e;
		}
	},
);그런 다음 db.batch([]) 메서드를 사용할 수 있으며, 이 메서드는 모든 쿼리를 프록시로 전달합니다.
배치 응답은 프록시 서버로 전송된 순서와 동일한 순서로 배열된 원시 값(배열 안의 배열)이어야 합니다.