생성 워크플로우
Entity 수정
JSON 파일 편집 필드, 타입, 인덱스
Sonamu UI
Generate 버튼 자동 비교 및 생성
Migration 확인
src/migrations/*.ts up/down 검토
실행
pnpm sonamu migrate DB 적용
Sonamu UI에서 생성하기
1. Entity 수정
먼저 Entity JSON 파일을 수정합니다:2. Sonamu UI 열기
API 개발 서버를 실행한 뒤 브라우저에서 접속합니다. Sonamu UI는 별도 포트 없이 API 서버의/sonamu-ui 경로에서 제공됩니다.
3. Generate 버튼 클릭
Entity 탭에서 Generate 버튼을 클릭합니다.Generate 버튼 클릭
4. Migration 확인
자동으로 생성된 Migration 파일을 확인합니다:Sonamu는 Entity와 현재 DB 스키마를 비교하여 차이점만 Migration으로 생성합니다.
생성되는 Migration 유형
새 테이블 생성
Entity 추가:컬럼 추가
Entity 변경:컬럼 삭제
Entity 변경:컬럼 타입 변경
Entity 변경:인덱스 추가
Entity 변경:where는 PostgreSQL partial index predicate로 그대로 사용되는 raw SQL입니다. 사용자 입력을 조합하지
말고, stable한 컬럼 조건만 선언하세요. PostgreSQL introspection이 predicate를 괄호로 감싸 반환하는
경우에도 migration diff에서는 같은 조건으로 처리됩니다.
외래 키 추가
Entity 변경:복합 변경
여러 변경 사항이 있으면 여러 Migration이 생성됩니다: Entity 변경:Sonamu는 변경 유형별로 Migration을 분리하여 관리하기 쉽게 합니다.
Migration 파일 이름 규칙
- 타임스탬프:
YYYYMMDDHHmmss - 작업:
create,alter,foreign,drop - 테이블명: 언더스코어로 구분
- 번호: 같은 작업이 여러 개면
add1,add2등
생성 전 확인 사항
1. DB 연결 확인
2. 기존 Migration 상태 확인
3. Entity 동기화
수동 수정
자동 생성된 Migration을 수동으로 수정할 수 있습니다:특수 케이스
Generated 컬럼
데이터 마이그레이션
조건부 실행
다음 단계
마이그레이션 실행
migrate run으로 적용
롤백하기
변경 사항 되돌리기
동작 원리
자동 생성 이해하기
전략
안전한 마이그레이션