MikroORM 엔티티에서 Mermaid ERD와 Markdown 스키마 문서를 생성하는 패키지를 만들어봤습니다
안녕하세요.
최근 회사 프로젝트를 NestJS로 Migration 하게 되었는데, MikroORM을 사용하면서 ERD와 DB 스키마 문서를 자동으로 만들고 싶어서 mikro-orm-markdown이라는 npm 패키지를 만들어봤습니다.
mikro-orm-markdown은 MikroORM 엔티티 메타데이터를 읽어서 Mermaid ERD 다이어그램과 Markdown 기반 데이터베이스 스키마 문서를 생성합니다.
주요 기능은 다음과 같습니다.
- MikroORM 엔티티에서 Mermaid ERD 생성
- 컬럼, 관계, nullable, PK/FK/UK, 인덱스, 제약 조건 문서화
- JSDoc 설명을 Markdown 문서에 반영
- @namespace, @erd, @describe, @hidden 태그로 문서 그룹화 및 노출 제어
- 실행 중인 DB 연결 없이 MikroORM metadata discovery 기반으로 동작
- CLI와 TypeScript API 모두 지원
Prisma 생태계에는 prisma-markdown이라는 좋은 도구가 있습니다.
https://github.com/samchon/prisma-markdown
MikroORM에서도 비슷한 방식으로 ERD와 스키마 문서를 코드와 함께 관리하고 싶어서 이 패키지를 만들게 됐습니다.
좋은 아이디어와 도구를 만들어주신 samchon 님께 감사드립니다.
아직은 부족한 점이 많은 초기 버전입니다. 다양한 MikroORM 사용 패턴을 모두 커버한다고 보기는 어렵고, 실제 프로젝트에서 더 검증하고 개선해야 할 부분도 많습니다.
그래도 MikroORM을 사용 중이거나, ERD/스키마 문서를 코드와 함께 관리하고 싶은 분들께 작게나마 도움이 되었으면 합니다. 피드백이나 개선 아이디어는 언제든 환영합니다.