RAGit
명령어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 또는 dogfood policy로 .ragit/manifest/**를 공유하거나 추적하십시오.

관련 명령