DB 스키마 조립 ​

DB 모듈이 소유한 테이블과 번들이 선언한 관계를 조합합니다. 카탈로그의 테이블 목록은 등록 메타데이터이며 실제 사용 DB를 조회한 결과가 아닙니다.

관계의 책임 ​

  • schema.relation: 테이블 사이 관계 선언.
  • schema.extend: 조합에서 필요한 확장 선언.
  • schema.reference: 다른 모듈의 테이블 참조.
  • schema.naming / schema.recreate: 물리 명명과 재생성 설정.

참조되는 테이블의 소유 모듈은 빠지면 안 되므로 include 대신 depend.db로 선언합니다. 세부 필드 형태는 Manifest 레퍼런스의 원본 링크를 기준으로 작성하세요.

계획과 차이 확인 ​

sh
logic schema plan --vendor sqlite --stdout
logic schema diff --sqlite .logic/app.sqlite --exit-code

plan은 DB에 접속하지 않고 DDL 계획을 만듭니다. diff는 기존 DB와의 차이를 보여주고, --exit-code는 반영할 변경이 있을 때 종료 코드 1을 반환합니다.

실제 반영 ​

sh
logic schema sync --sqlite .logic/app.sqlite

sync는 SQLite 파일을 실제로 변경합니다. 대상 DB와 변경 계획을 확인한 후 실행하세요. UI entry별 지원 범위는 예제의 검증 문서를 확인합니다.

관계/FK 그래프는 순환을 허용하지만 패키지 의존 그래프는 비순환이어야 합니다. 두 그래프를 구별해 문제를 진단하세요.