PostgreSQL 전용 ERD 도구 — DB에 접속해 스키마를 가져와 ERD를 그리고, 논리/물리 이중 모델·뷰·DDL·ERMaster .erm·테이블 정의서·DB 비교(diff)를 지원하는 VS Code 확장. Eclipse ERMaster가 주던 가치를 VS Code에서 재현합니다.
캔버스 편집기는 오픈소스 erd-editor (dineug) (MIT) 를 fork·확장해 구현했습니다.
주요 기능
| 기능 | 설명 |
|---|---|
| DB → ERD | PostgreSQL 접속(폼 다이얼로그) → 스키마 추출 → ERD 렌더. 테이블만 / 테이블+뷰 선택 |
| 논리/물리 이중명 | 논리명(업무용어)+물리명 동시 보유. 표시 전환 + 논리명 캔버스 직접 편집 |
| 뷰(View) | 테이블처럼 컬럼/타입으로 read-only 표시(드래그 이동 가능). DDL은 원본 정의 그대로 |
| 테이블 정의서 | ERD → Excel(xlsx)/HTML 산출물(목차·논리/물리·타입·PK/FK·코멘트·인덱스·뷰) |
| DDL 내보내기 | ERD → PostgreSQL DDL(CREATE TABLE/PK/FK/INDEX/VIEW + 논리명 COMMENT ON) |
| DB 비교(diff) | ERD ↔ 실DB 차이를 ALTER 스크립트로 생성(DROP류는 주석 처리로 안전) |
ERMaster .erm |
.erm 저장/열기(타입·논리명 호환) |
사용법
1. DB에서 ERD 가져오기
- 명령 팔레트(
Ctrl+Shift+P) →ERDmaker: Import ERD from PostgreSQL - 폼에 Host / Port / Database / User / Password 입력 → Connect
- Schema 선택 + Tables only / Tables + Views 선택 → Import
<db>_<schema>.erd.json이 생성되고 ERD가 렌더됩니다.
- 논리명은 DB 코멘트에서 자동으로 채워집니다(테이블/컬럼/뷰). PostGIS 등 확장 시스템 객체는 자동 제외.
- 비밀번호는 VS Code SecretStorage에 안전하게 보관됩니다.
- 설정
erdmaker.import.commentAsLogicalName(기본 켜짐)을 끄면 코멘트를 논리명으로 옮기지 않고 comment 필드에 유지합니다.
2. 논리/물리 표시 전환 & 논리명 편집
- 캔버스 빈 곳 우클릭 →
Logical/Physical→Physical/Logical/Logical + Physical - Logical 모드에서 테이블명/컬럼명을 더블클릭하면 논리명을 바로 편집할 수 있습니다(한글 입력 지원, Ctrl+Z 되돌리기 지원). Physical 모드 편집은 물리명을 바꿉니다.
- 우클릭 →
Letter Case: 영문 물리명을 None / UPPERCASE / lowercase로 표시 전환.
3. 테이블 정의서 내보내기 (Excel/HTML)
- 정의서를 뽑을
.erd.json을 연 상태에서 명령 팔레트 →ERDmaker: Export Table Specification (테이블 정의서) - Excel (.xlsx) / HTML / 둘 다 선택
- 같은 폴더에
<이름>-spec.xlsx/<이름>-spec.html생성
- Excel:
테이블목록시트(목차) +테이블정의서시트(테이블별 컬럼: No/컬럼명/논리명/타입/PK/FK/NN/UQ/AI/Default/설명) +뷰정의서시트. - HTML: 인쇄 친화 단일 문서(목차 앵커 + 테이블별 섹션 + 인덱스 + 뷰).
4. DB 비교 — ALTER 스크립트 생성 (diff)
- 기준이 될
.erd.json(설계)을 연 상태에서 명령 팔레트 →ERDmaker: Compare ERD with Database (diff DDL) - DB 접속(
.env/설정 프리필) → Schema 선택 - 같은 폴더에
<이름>-diff.sql생성 + 에디터로 열림
- DB를 ERD에 맞추는 방향의 PostgreSQL 스크립트: 테이블/컬럼 추가(
CREATE TABLE/ADD COLUMN), 타입·NOT NULL·DEFAULT 변경(ALTER COLUMN), 코멘트(COMMENT ON), FK/인덱스 추가, 뷰 생성. - 삭제류(DROP TABLE/COLUMN/CONSTRAINT/INDEX)는 전부 주석 처리되어 출력됩니다 — 데이터 손실 방지를 위해 직접 검토 후 해제하세요.
- NOT NULL 신규 컬럼 등 실행 시 주의가 필요한 항목엔 경고 주석이 붙습니다.
5. DDL 내보내기
- 캔버스 우클릭 → Export →
Schema SQL→ PostgreSQL.sql CREATE TABLE/ PK /ALTER TABLE … FOREIGN KEY/CREATE INDEX/CREATE VIEW(원본 정의 verbatim) + 논리명COMMENT ON.
6. ERMaster .erm 저장/열기
- 명령 팔레트 →
ERDmaker: Export to ERMaster (.erm)/ERDmaker: Import from ERMaster (.erm) - 타입은 ERMaster 관례(
varchar(n)+길이 분리)로 저장되어 ERMaster에서 열어도 타입이 정합됩니다.
7. Working Set (업무 그룹 보기)
- 캔버스 하단 탭바
[All | 세트들 | + | 👁]—+로 세트 생성, 더블클릭 이름변경, x 삭제. - 테이블 우클릭 → Working Set으로 세트에 추가/제거. 탭 전환 시 그 세트만 표시(👁로 숨김↔흐림 전환).
- 세트가 활성일 때 Schema SQL은 그 세트만 출력, 테이블 정의서는 전체/세트 선택 가능.
.erm저장/열기에도 세트가 보존됩니다.
8. 파일 트리에서 시작
- 탐색기 폴더 우클릭 → "New ERD from PostgreSQL…" — 그 폴더에 바로 ERD 생성.
- 열려 있는
.erd.json이 있으면 Import 다이얼로그에서 "현재 파일에 채우기"(내용 대체) 선택 가능.
9. 배치/표시 편의
- Automatic Table Placement: 관계 기반 자동 배치(force).
- Align to Pages: A4/A3/B4 용지 단위 그리드 정렬 — 넘치면 다음 장으로 이어 배치, export 잘림 방지.
- 이름 칸 자동 폭(논리/물리/둘다 모드 모두 잘림 없음), 뷰 노드 드래그 이동.
범위
- DB: PostgreSQL 전용.
라이선스
MIT. erd-editor(MIT) 파생물입니다.