DB 스키마
⚠️ 이 문서는 안내용. 실제 스키마 문서는
db-schema/디렉토리 (tbls 자동 생성).
어디서 보나
- 테이블 목록 + ER 다이어그램 →
db-schema/README.md - 테이블별 상세 →
db-schema/dartbrief.<테이블>.md
재생성
스키마 변경(마이그레이션 추가) 시 로컬 DB에 마이그레이션 적용 후 레포 루트에서 스크립트 실행:
bash
# 마이그레이션 적용 (백엔드 재시작 시 Goose가 자동, 또는 직접):
cd backend && APP_ENV=local goose -dir cmd/server/migrations postgres "$DATABASE_URL" up
cd .. # 레포 루트로
# 문서 재생성
./scripts/regen-db-schema.sh스크립트는 tbls doc --rm-dist 실행 후, README 의 cross-schema Enums 섹션을 제거한다. (tbls 가 PostgreSQL 의 모든 스키마 enum 을 긁어오는 한계 때문 — disableOutputSchema: true 로 schema.json 까지는 막을 수 있지만 README enum 섹션은 별도 정리 필요.)
설정 파일: .tbls.yml 스크립트: scripts/regen-db-schema.sh
데이터소스
- 로컬 PostgreSQL (
postgres://dartbrief:dartbrief@localhost:5432/local) - 스키마:
dartbrief - 제외:
goose_db_version(마이그레이션 메타 테이블)
prod DB가 아닌 로컬 DB를 기준으로 한 이유:
- 마이그레이션이 적용된 시점의 스키마를 그대로 반영 (prod와 동일해야 정상)
- prod 의존성 없음 → CI/오프라인에서도 재생성 가능
한계
- tbls는 컬럼 코멘트(
COMMENT ON COLUMN)를 그대로 가져오는데, 현재 마이그레이션에는 코멘트가 없어 표가 비어있음 - 의미를 보려면
docs/spec/domain-*.md의 "데이터 모델" 섹션 참조