You need to enable JavaScript to run this app.
文档中心
向量数据库VikingDB

向量数据库VikingDB

复制全文
下载 pdf
OpenViking Service
OpenViking 数据迁移
复制全文
下载 pdf
OpenViking 数据迁移

环境变量准备

后续命令默认使用以下环境变量:

# 需要迁移的服务地址
export SOURCE_URL="http://localhost:1933"
# serverless 服务地址
export TARGET_URL="https://api.vikingdb.cn-beijing.volces.com/openviking"

# 如果本地源端未启用鉴权,可以删除源端命令里的 X-API-Key header。
export SOURCE_API_KEY="<source-account-admin-key-if-used>"

# 目标端使用 account API Key。
export TARGET_API_KEY="<remote-account-admin-key>"

export EXPORT_DIR="./exports"
mkdir -p "${EXPORT_DIR}"

注意:

  • 如果源端未启用鉴权,删除源端请求中的 -H "X-API-Key: ${SOURCE_API_KEY}"

1、全量迁移

从源端备份全部数据

curl -sS -X POST "${SOURCE_URL}/api/v1/pack/backup" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: ${SOURCE_API_KEY}" \
  -d '{"include_vectors": false}' \
  --output "${EXPORT_DIR}/openviking-local.ovpack"

上传备份包到目标端并恢复

TARGET_TEMP_FILE_ID=$(
  curl -sS -X POST "${TARGET_URL}/api/v1/resources/temp_upload" \
    -H "X-API-Key: ${TARGET_API_KEY}" \
    -F "file=@${EXPORT_DIR}/openviking-local.ovpack" \
  | jq -r ".result.temp_file_id"
)

echo "${TARGET_TEMP_FILE_ID}"

如果没有安装 jq,可以直接查看上传接口响应,手动取出 result.temp_file_id

curl -sS -X POST "${TARGET_URL}/api/v1/pack/restore" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: ${TARGET_API_KEY}" \
  -d "{
    \"temp_file_id\": \"${TARGET_TEMP_FILE_ID}\",
    \"on_conflict\": \"overwrite\"
  }"

2. 局部迁移

适用于只迁移某个目录,例如:

viking://resources/my-project

从源端导出目录

curl -sS -X POST "${SOURCE_URL}/api/v1/pack/export" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: ${SOURCE_API_KEY}" \
  -d '{
    "uri": "viking://resources/my-project",
    "include_vectors": false
  }' \
  --output "${EXPORT_DIR}/my-project.ovpack"

上传局部包到目标端

TARGET_TEMP_FILE_ID=$(
  curl -sS -X POST "${TARGET_URL}/api/v1/resources/temp_upload" \
    -H "X-API-Key: ${TARGET_API_KEY}" \
    -F "file=@${EXPORT_DIR}/my-project.ovpack" \
  | jq -r ".result.temp_file_id"
)

echo "${TARGET_TEMP_FILE_ID}"

导入到目标端

curl -sS -X POST "${TARGET_URL}/api/v1/pack/import" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: ${TARGET_API_KEY}" \
  -d "{
    \"temp_file_id\": \"${TARGET_TEMP_FILE_ID}\",
    \"parent\": \"viking://resources/\",
    \"on_conflict\": \"overwrite\"
  }"

parent 是目标父目录,不是最终目录。上面命令的导入结果是:

viking://resources/my-project
最近更新时间:2026.05.26 18:01:45
这个页面对您有帮助吗?
有用
有用
无用
无用