PostgreSQL 스키마를 ERD로 시각화하기
PostgreSQL 테이블 관계를 문서화하려면 CREATE TABLE SQL을 가져오거나, 기존 DB에서 메타데이터 수집 쿼리를 실행해 결과를 가져올 수 있습니다. 아래 public.projects와 public.tasks 예제로 두 경로와 검토 방법을 살펴보세요. Schema Studio가 DB 서버에 직접 접속하지 않으며, 예제는 가입 없이 편집할 수 있습니다.
K는 기본키, *는 필수 컬럼입니다. 작은 화면에서는 그림을 좌우로 스크롤하거나 눌러서 크게 볼 수 있습니다.
가져오기부터 결과 보관까지
1. SQL로 시작하기
아래 SQL을 복사하고 편집기 → 가져오기 → PostgreSQL DDL에 붙여넣으세요. DDL 확인을 누르면 가져올 테이블과 경고를 볼 수 있습니다. 실제 스키마에서는 FK 대상 테이블과 관련 제약 정의도 함께 준비하세요.
2. 선택해서 새 문서로 가져오기
projects와 tasks를 모두 선택하고 2개 테이블 가져오기를 누르세요. 새 문서로 가져옵니다. 입력은 최대 2MiB, 문서는 최대 100테이블입니다. 원본에 있는 테이블 수와 FK를 비교하고, 경고가 있으면 누락된 정의를 먼저 검토하세요.
3. 관계를 검토하고 결과 보관
tasks.project_id → projects.id 관계를 확인하고, 컬럼의 필수 여부와 자료형을 살펴봅니다. PNG는 공유용 그림으로, JSON은 배치·설명까지 보관하는 백업으로 사용하세요. 클라우드 저장은 로그인 후 이용할 수 있습니다.
바로 가져올 수 있는 SQL 예제
아래 SQL을 PostgreSQL DDL 탭에 붙여넣으면 두 테이블과 외래키 한 개를 가져옵니다. UUID 자동 생성 기본값은 생략했으므로 레코드를 넣는다면 UUID를 별도로 제공해야 합니다. SQL을 DB에서 실행하지 않아도 다이어그램으로 가져올 수 있습니다.
CREATE TABLE public.projects (
id uuid PRIMARY KEY,
name text NOT NULL
);
CREATE TABLE public.tasks (
id uuid PRIMARY KEY,
project_id uuid NOT NULL,
title text NOT NULL,
FOREIGN KEY (project_id) REFERENCES public.projects (id)
);같은 구조의 DBML 예제 보기
Table public.projects {
id uuid [pk]
name text [not null]
}
Table public.tasks {
id uuid [pk]
project_id uuid [not null]
title text [not null]
}
Ref: public.tasks.project_id > public.projects.id아래 버튼은 이 코드에서 만든 예제를 새 문서로 엽니다. 가입 없이 편집할 수 있으며 기존 작업은 보관됩니다. 직접 가져오려면 코드를 복사해 편집기의 가져오기에 붙여넣으세요.
이 예제로 시작하기 →기존 DB가 있다면: 메타데이터 수집 쿼리
편집기 → 가져오기 → PostgreSQL 수집 쿼리에서 쿼리를 복사합니다. 사용 중인 SQL 클라이언트에서 실행한 뒤 결과의 schema_studio JSON 값을 복사해 가져오기의 JSON 탭에 붙여넣고 JSON 확인을 누르세요. PostgreSQL 16/17을 대상으로 하며 SELECT 권한이 있는 비시스템 테이블의 구조를 수집합니다. 레코드를 읽거나 DB를 변경하지 않지만 이름·설명 같은 메타데이터도 민감할 수 있으므로 가져올 테이블을 확인하세요.
스키마 이름까지 포함해 참조 확인
public.projects와 다른 스키마의 projects는 별개 테이블입니다. 스키마가 여러 개라면 관계선이 정확한 대상에 연결되는지 확인하세요. 업무명과 설명을 함께 적으면 기술 이름과 팀의 용어를 연결해 리뷰하기 쉽습니다.
PK·UNIQUE·FK와 NULL 구분
PostgreSQL의 기본키는 행을 고유하게 식별하며 NULL을 허용하지 않습니다. 외래키는 PK나 UNIQUE 등 참조 가능한 키를 가리켜야 합니다. 관계가 필수인지 선택인지 판단할 때는 FK 컬럼의 NOT NULL 설정도 확인하세요. 복합 키라면 컬럼 순서와 대응 관계를 함께 검토합니다.
다이어그램과 실행 스키마의 범위 확인
ERD는 테이블과 관계를 리뷰하는 도구입니다. 인덱스 옵션, 권한, RLS 정책, 함수까지 동일하게 재현하는 배포 도구로 보아서는 안 됩니다. Free에서는 DBML·Schema Studio JSON과 지원 범위의 PostgreSQL DDL을 가져올 수 있으며 PostgreSQL 16/17 메타데이터 수집 쿼리를 제공합니다. 제공된 예제를 실제 DB에 적용하기 전 별도 SQL 검토와 테스트가 필요합니다.
테이블은 있는데 관계선이 없을 때
컬럼 이름이 project_id여도 원본에 FK가 없으면 관계선은 자동으로 생기지 않습니다. FOREIGN KEY 정의, 참조 대상 테이블의 포함 여부와 스키마 이름을 확인하세요. 뷰·RLS·함수·특수 인덱스 등은 전체 보존 대상이 아니므로 원본 SQL과 경고를 함께 검토해야 합니다.
직접 해보기: 선택적 프로젝트 관계
예제를 열고 tasks.project_id의 NULL 허용을 켜세요. 외래키 관계를 유지하면서 프로젝트 미지정 작업을 허용하는 모델로 바뀝니다. 변경 전후의 필수 여부를 비교하고 JSON으로 백업해 보세요.
예제 열고 실습하기 →지금 무료로 사용할 수 있는 기능
현재 Free에서 DBML·Schema Studio JSON 가져오기와 내보내기, 테이블·관계 편집을 제공합니다. 로그인 후 클라우드에 저장할 수 있으며 중요한 작업은 JSON으로 백업하세요. 지원 범위의 PostgreSQL·MySQL DDL 가져오기, PostgreSQL 수집 쿼리와 PNG 출력도 무료입니다. SQL·SVG 출력은 준비 중입니다. MySQL 입력은 PostgreSQL 문서 모델로 변환되며 원본과 경고를 확인하세요.
요금제와 저장 한도 확인 →