Drizzle ORM vs MikroORM
어떤 ORM을 쓸까?
기본
| Drizzle ORM | MikroORM | |
|---|---|---|
| 주간 다운로드 | 1817만 | 70.2만 |
| 최근 릴리스 | 43일 전 | 3일 전 |
| 유지보수 | 🟢 활발 | 🟢 활발 |
| 열린 이슈 | 1,945 | 20 |
유지보수 상태는 최근 릴리스 간격만으로 판정합니다 (90일 이내 🟢 · 270일 이내 🟡 · 그 이상 🔴).
쓰다 보면 만나는 것
Drizzle ORM
- 거슬림
down 마이그레이션이 없어 롤백은 손으로 역방향 SQL을 쓰는 일이 된다
drizzle-kit은 up 방향 마이그레이션만 생성한다. 배포 후 스키마를 되돌리려면 역방향 SQL을 직접 작성해야 하며, 순차 번호 방식이라 여러 명이 동시에 마이그레이션을 만들면 머지 충돌이 난다. 롤백 기능 요청은 2024년부터 priority 라벨로 열려 있다.
2025-05 · 미해결
- 거슬림
서버리스·HTTP 계열 드라이버에서는 인터랙티브 트랜잭션이 제한되거나 지원되지 않는다
Cloudflare D1 드라이버는 트랜잭션을 지원하지 않고, Neon HTTP 드라이버도 인터랙티브 트랜잭션을 잡을 수 없어 우회 설계(멱등키 등)가 필요하다. sqlite 계열도 5개 구현 중 4개가 async 트랜잭션 콜백을 지원하지 않는다. 엣지 배포가 세일즈 포인트인 만큼 뒤늦게 발견하면 아프다. TCP 드라이버(pg, postgres.js)에서는 트랜잭션이 정상 동작함을 2026-08에 직접 확인했다.
2026-03 · 미해결
- 사소
tx.rollback()은 예외를 던지는 API라서 호출자까지 에러가 전파된다
수동 롤백 시 롤백 자체는 정상 수행되지만 DrizzleError: Rollback이 transaction() 밖으로 던져진다. 문서에 한 줄 언급이 있으나, 다른 ORM에서 온 사용자가 이를 버그로 오인한 보고가 이어져 왔다. 정상 흐름으로 쓰려면 호출부에서 잡아야 한다. drizzle-orm 0.45.2에서 3개 드라이버로 직접 재현·확인했다.
2026-08 · 미해결
MikroORM
아직 정리된 항목이 없습니다. 출처가 확보되는 대로 추가됩니다.
이럴 땐 이걸
- 엣지·서버리스 배포 (트랜잭션 제약은 확인할 것) → Drizzle ORM