一个数据转储是一个压缩文件,其中包含您的 Meilisearch 实例的导出。使用数据转储可以迁移到新的 Meilisearch 版本。本教程将向您展示如何创建和导入数据转储。

创建数据转储也称为导出。使用数据转储启动 Meilisearch 称为导入。

创建数据转储

在 Meilisearch Cloud 中创建数据转储

您无法在 Meilisearch Cloud 中手动导出数据转储。要将您的项目迁移到最新的 Meilisearch 版本,请使用 Cloud 界面

如果您因升级以外的原因需要创建数据转储,请通过 Meilisearch Cloud 界面或Meilisearch 官方 Discord 服务器联系支持团队。

在自托管实例中创建数据转储

要创建数据转储,请使用创建数据转储端点

curl \
  -X POST 'MEILISEARCH_URL/dumps'

这将返回一个摘要任务对象,您可以使用它来检查数据转储的状态。

{
  "taskUid": 1,
  "indexUid": null,
  "status": "enqueued",
  "type": "dumpCreation",
  "enqueuedAt": "2022-06-21T16:10:29.217688Z"
}

数据转储创建过程是一个异步任务,所需时间与数据库大小成正比。将 1 替换为上一个命令返回的 taskUid

curl \
  -X GET 'MEILISEARCH_URL/tasks/1'

这将返回一个包含数据转储操作详细信息的对象

{
  "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 文件。数据转储还包括 Meilisearch 开始处理数据转储创建任务之前注册的任何任务。

一旦任务 status 变为 succeeded,您可以在数据转储目录中找到数据转储文件。默认情况下,此文件夹名为 dumps,位于您启动 Meilisearch 的同一目录中。

如果文件系统中可见数据转储文件,则数据转储过程已成功完成。即使您在生成数据转储时中断实例,Meilisearch 也绝不会创建部分数据转储文件

由于 key 字段依赖于主密钥,因此它不会传播到数据转储中。如果恶意用户获取了您的数据转储,他们将无法访问您实例的 API 密钥。

导入数据转储

在 Meilisearch Cloud 中导入数据转储

您可以在创建新项目时,在计划选择器下方将数据转储导入 Meilisearch。

在自托管实例中导入数据转储

通过使用--import-dump 配置选项启动 Meilisearch 实例来导入数据转储。

./meilisearch --import-dump /dumps/20200813-042312213.dump

根据数据转储文件的大小,导入可能需要大量时间。只有在导入过程完成后,您才能访问 Meilisearch 及其 API。

Meilisearch 会导入数据转储文件中的所有数据。如果您已向实例添加数据,则现有索引中与数据转储文件中的索引具有相同 uid 的索引将被覆盖。

请勿使用数据转储从新的 Meilisearch 版本迁移到旧版本。这样做可能会导致意外行为。