runlot

ORM

Prisma·Drizzle·Kysely·TypeORM·Sequelize·Knex 여섯이 실물 런타임에서 돌아갑니다.

어댑터 한 줄이면 됩니다. 여섯 모두 실제 워커 위에서 CRUD·트랜잭션 커밋·롤백까지 시험합니다.

import { PrismaClient } from "@prisma/client";
import { PrismaRunlot } from "@runlot/pg/prisma";

const prisma = new PrismaClient({ adapter: new PrismaRunlot(env.db) });

const posts = await prisma.post.findMany({ orderBy: { createdAt: "desc" }, take: 20 });

await prisma.$transaction(async (tx) => {
  await tx.user.create({ data: { id: 3, name: "c" } });
});

Prisma 7 은 WASM 쿼리 컴파일러를 씁니다. runlot deploy 가 그 .wasm 을 별도 모듈로 매니페스트에 적어 줍니다 — 직접 하실 일은 없습니다.

unique 위반은 Prisma 규칙대로 P2002 로 옵니다. 다른 다섯은 SQLSTATE 23505 입니다.

크기와 실측

같은 시나리오(표 만들기 → CRUD → 트랜잭션 커밋 → 롤백)를 실물 런타임에서 재었습니다.

ORM시나리오 전체번들 크기필요한 것
Knex93 ms938 KBnodejs_compat (자동)
Sequelize137 ms2.7 MBnodejs_compat (자동)
Drizzle148 ms246 KB없음
Kysely148 ms473 KB없음
TypeORM174 ms2.8 MBnodejs_compat (자동)
Prisma291 ms417 KB + wasmwasm 모듈 (자동)

번들이 작은 쪽이 콜드 스타트에 유리합니다. 무엇을 쓰실지 정하지 않으셨다면 Drizzle 이나 Kysely 로 시작하시는 것을 권합니다.

마이그레이션

ORM 의 마이그레이션 도구는 SQL 을 만드는 데만 씁니다. 적용은 runlot pg migrate 입니다. 자세한 것은 마이그레이션 에 있습니다.

이 페이지에서