导出和导入 Dump
A dump 是一个压缩文件,包含你的 Meilisearch 实例的导出。使用 Dump 迁移到新的 Meilisearch 版本。本教程将向你展示如何创建和导入 Dump。
创建 Dump 也被称为导出。使用 Dump 启动 Meilisearch 也被称为导入。
创建 Dump
在 Meilisearch Cloud 中创建 Dump
你不能在 Meilisearch Cloud 中手动导出 Dump。要 将你的项目迁移到最新的 Meilisearch 版本,请使用 Cloud 界面
如果出于升级以外的原因需要创建 Dump,请通过 Meilisearch Cloud 界面或官方 Meilisearch Discord 服务器联系支持团队。
在自托管实例中创建 Dump
要创建 Dump,请使用创建 Dump 端点
curl \
-X POST 'MEILISEARCH_URL/dumps'
这将返回一个摘要任务对象,你可以使用它来检查你的 Dump 的状态。
{
"taskUid": 1,
"indexUid": null,
"status": "enqueued",
"type": "dumpCreation",
"enqueuedAt": "2022-06-21T16:10:29.217688Z"
}
Dump 创建过程是一个异步任务,所需时间与你的数据库大小成正比。将 1
替换为上一个命令返回的 taskUid
curl \
-X GET 'MEILISEARCH_URL/tasks/1'
这应该返回一个包含 Dump 操作详细信息的对象
{
"uid": 1,
"indexUid": null,
"status": "succeeded",
"type": "dumpCreation",
"canceledBy": null,
"details": {
"dumpUid": "20220621-161029217"
},
"error": null,
"duration": "PT0.025872S",
"enqueuedAt": "2022-06-21T16:10:29.217688Z",
"startedAt": "2022-06-21T16:10:29.218297Z",
"finishedAt": "2022-06-21T16:10:29.244169Z"
}
当前实例的所有索引及其文档和设置都将被导出,并保存为单个 .dump
文件。Dump 还包括在 Meilisearch 开始处理 Dump 创建任务之前注册的任何任务。
一旦任务 status
变为 succeeded
,请在 dump 目录 中查找 dump 文件。默认情况下,此文件夹名为 dumps
,可以在您启动 Meilisearch 的同一目录中找到。
如果在文件系统中可以看到 dump 文件,则表示 dump 过程已成功完成。即使您在 Meilisearch 生成 dump 文件时中断实例,Meilisearch 也绝不会创建部分 dump 文件。
API 密钥和备份
由于 key
字段依赖于主密钥,因此它不会传播到 dump 文件中。如果恶意用户访问了您的 dump 文件,他们将无法访问您实例的 API 密钥。
导入 dump 文件
在 Meilisearch Cloud 中导入 dump 文件
您可以在创建新项目时将 dump 文件导入 Meilisearch,位置在套餐选择器下方
在自托管实例中导入 dump 文件
通过使用 --import-dump
配置选项启动 Meilisearch 实例来导入 dump 文件
./meilisearch --import-dump /dumps/20200813-042312213.dump
根据您的 dump 文件大小,导入可能需要相当长的时间。只有在此过程完成后,您才能访问 Meilisearch 及其 API。
Meilisearch 会导入 dump 文件中的所有数据。如果您已向实例添加了数据,则 dump 文件中与索引具有相同 uid
的现有索引将被覆盖。
注意
请勿使用 dump 文件从新的 Meilisearch 版本迁移到较旧的版本。这样做可能会导致意外行为。