> ## Documentation Index
> Fetch the complete documentation index at: https://docs.conare.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Міграція з Turbopuffer

> Скопіюйте кожен рядок, вектор і атрибут з Turbopuffer у ConareDB через відновлюваний імпортер із перевіркою, який лише читає джерело.

Робочий рушій постачає власний CLI для міграції — завантажуйте його з сервісу, щоб він завжди відповідав розгорнутому білду:

```bash theme={null}
curl -fsSO https://db.conare.ai/v1/tools/migrate-turbopuffer.py

export TURBOPUFFER_API_KEY='tpuf_...'
export CONAREDB_API_KEY='cdb_...'

python3 migrate-turbopuffer.py \
  --source-namespace my-production-data \
  --destination-namespace acme-production
```

## Що він гарантує

* **Лише читання на джерелі.** Він ніколи не видаляє і не модифікує дані Turbopuffer, і ваш ключ Turbopuffer ніколи не надсилається до Conare.
* **З відновленням.** Пагінує за зростанням id, атомарно upsert-ить батчі призначення та пише чекпоінт без секретів після кожної підтвердженої сторінки — перервіть і запустіть знову, він продовжить із місця зупинки.
* **З верифікацією.** Компактує призначення та верифікує кількість рядків, коли копіювання завершене.
* **Fail-closed.** Імпортер підтримує один щільний векторний стовпець на простір імен; multi-vector, sparse-vector і late-interaction простори імен зазнають невдачі з явною помилкою замість того, щоб тихо втратити дані.

## Опції

| Прапорець                                     | Призначення                                     |
| --------------------------------------------- | ----------------------------------------------- |
| `--all-namespaces --destination-prefix acme-` | Мігрувати повний акаунт                         |
| `--dry-run`                                   | Валідувати першу сторінку без запису            |
| `--vector-attribute name`                     | Коли векторний стовпець називається не `vector` |

## Після міграції

Запити переносяться природно: [`/v2` query shim](/db/search#turbopuffer-compatible-shim) приймає форму читання Turbopuffer (`rank_by`, `filters`, `top_k`, `include_attributes`) як є, а нативний фільтр-DSL [`/v1/search`](/db/search) використовує ті самі оператори `[property, op, value]`, які ви вже пишете.
