Node.js ORM

Drizzle ORM vs TypeORM

어떤 ORM을 쓸까?

기본

Drizzle ORMTypeORM
주간 다운로드1817만483만
최근 릴리스43일 전27일 전
유지보수🟢 활발🟢 활발
열린 이슈1,945606

유지보수 상태는 최근 릴리스 간격만으로 판정합니다 (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 · 미해결

TypeORM

  • 거슬림

    마이그레이션 생성기가 컬럼 변경을 ALTER 대신 드랍·재생성으로 만들 수 있다

    특정 컬럼 변경에서 migration:generate가 DROP 후 재생성 SQL을 만들어, 검토 없이 적용하면 해당 컬럼 데이터가 사라진다. 2019년부터 열려 있는 이슈이며, 디폴트값이 매번 재생성되는 등 생성기 출력이 안정적이지 않다는 보고가 이어진다. 생성된 마이그레이션 SQL을 반드시 사람이 검토하는 절차가 필요하다.

    2024-03 · 미해결

이럴 땐 이걸

  • 엣지·서버리스 배포 (트랜잭션 제약은 확인할 것) Drizzle ORM

문서 바로가기