명령어Migrate
migrate embeddings
현재 설정된 embedding contract에 맞게 canonical store를 다시 구성합니다
무엇을 하는 명령인가
migrate embeddings는 현재 저장소에 이미 존재하는 manifest를 기준으로 .ragit/store를 다시 만들고, 현재 config가 표현하는 embedding provider contract에 맞춰 store를 교체합니다.
언제 쓰는가 / 언제 쓰지 않는가
언제 쓰는가
embedding.provider,embedding.model, 또는 local placeholder의 dimensions/version을 바꿨을 때status에서embedding.needsMigration=true가 보일 때- manifest는 유지한 채 같은 snapshot corpus만 다른 embedding contract로 옮기고 싶을 때
언제 쓰지 않는가
- 문서 내용만 바뀌었을 때.
ingest를 사용하십시오. - 레거시 store를 가져오는 상황일 때. 다른
migrate하위 명령을 사용하십시오.
기본 구문
pnpm ragit migrate embeddings [--dry-run] [--cwd <path>]
인자와 옵션
--dry-run: store를 다시 쓰지 않고 current contract, target contract, manifest/doc/chunk 개수만 반환합니다.--cwd <path>: 다른 저장소를 대상으로 실행합니다.
입력/출력 계약
- positional 입력도 JSON payload 입력도 없습니다.
- 출력은 JSON이며
mode,currentContract,targetContract,manifests,documents,chunks,migrationNeeded를 포함합니다. - apply 경로에서만
.ragit/store를 다시 씁니다. manifest 파일은 바꾸지 않습니다.
대표 사용 예시
provider 또는 model을 바꾼 뒤에는 먼저 embedding 상태를 확인합니다.
pnpm ragit status --format json
embedding.needsMigration=true일 때 apply 전에 migration을 미리 봅니다.
pnpm ragit migrate embeddings --dry-run
미리보기 결과를 검토한 뒤에만 실행합니다.
pnpm ragit migrate embeddings
실패/주의 사항
- manifest가 참조하는 chunk가 source store에 모두 남아 있어야 합니다. 하나라도 빠지면 즉시 실패합니다.
- 교체 과정에서
.ragit/store.next와.ragit/store.prev를 사용합니다. - provider 자격증명은 계속 env-only입니다. OpenAI apply는 명령 환경에 이미
OPENAI_API_KEY가 있어야 하며, 요청한 provider가local-placeholder로 조용히 fallback되지는 않습니다. 승인된 live evidence가 없으므로 OpenAI는 이번 릴리스의 production support 대상이 아닙니다. init에서 safe gitignore policy를 사용했다면 manifest는 로컬 전용일 수 있습니다. 다른 장비에서 같은 snapshot corpus를 재현해야 한다면snapshot-history또는dogfoodpolicy로.ragit/manifest/**를 공유하거나 추적하십시오.