升级和迁移 Upgrades Migrations

项目是 Directus 的完整实例,包括其数据库、配置文件、资产存储和任何自定义扩展。

升级/更新项目

1.备份你的项目 2.运行npm update 3.运行npx directus database migrate:latest更新数据库

备份项目

  1. 复制每个存储适配器中的文件,并将它们存储在安全的地方。
  2. 复制 /api/.env 文件,并将其存放在安全的地方。
  3. 创建数据库转储。

迁移项目

Directus 的操作不依赖于数据库以外的任何东西。 因此,可以通过使用数据库转储将整个数据库移动到新位置来迁移 Directus 项目。

文件存储
如果您上传了文件,请确保也将这些文件复制过来,或者在 Directus 的新位置中使用相同的存储位置。

降级项目

Directus 可以通过转到您的终端,导航到您的项目文件夹并运行npm install directus@<version> 恢复到早期版本。

如果您为较新版本运行了任何数据库迁移,则可以通过运行“npx directus database migrate:down”来恢复这些迁移

删除项目

  1. 可选:备份存储在项目根目录中的任何本地文件
  2. 可选:备份项目根目录中的任何自定义代码和扩展
  3. 可选:备份整个数据库,仅备份系统表,或仅备份项目表
  4. 从服务器删除项目的根目录
  5. 从数据库中删除所有 Directus 系统表 (directus_*)

干净的SQL
完成此过程后,您将得到一个纯 SQL 数据库,没有安装过 Directus 的痕迹。 任何直接连接到数据库项目表的外部服务(例如 SQL 查询)都应该继续正常工作。

从版本 8 迁移

从现有 Directus 8.X 实例迁移有两种方法:

如果您从应用程序使用 API,请务必检查 重大更改

自动化脚本

我们创建了一个(社区维护的)脚本,它会自动将架构、内容、文件、用户和角色从现有的 v8 实例复制到新的 v8 实例。这是从 v8 迁移到版本 v9 实例的最不干涉的方法,也是迁移 v8 实例的推荐方法。

该脚本以及如何运行它的说明可以在 directus-community/migration-tool 存储库中找到。

该工具将复制:

  • 架构(集合/字段)
  • 文件(包括文件内容)
  • 用户数据(例如,所有集合中的所有项目)
  • 角色
  • 用户

由于版本之间数据结构的显着差异,此工具将复制:

  • 界面/显示配置
  • 权限
  • 活动/修订

手动数据库导出/导入

自动
我们强烈建议使用上面提到的自动迁移工具。如果这不可行,您可以执行以下步骤来迁移您的 v8 实例。

Directus v9 是来自 v8 的重大更改(因此是主要版本的升级),因此您将无法仅使用现有的 v8 数据库并在其上运行 v9。但是,由于 Directus 的数据库镜像方法,将您的内容从 v8 迁移到 v9 相当简单。

1) 设置一个全新的 v9 实例

通过“全新”安装 Directus,您可以确保您的系统表是最新的并且可以随时使用。

2) 迁移数据

使用 Sequel ProTablePlus 之类的工具,导出您的 v8 用户表并将它们导入您的 v9 数据库。

Directus v9 将自动识别您的表格,您将准备好开始使用 v9。

注意: 如果您有对用户和文件的引用,请确保将它们更新为新的 UUID 格式。

3) 配置 Directus

一旦表格进入,您就可以开始配置模式的详细信息。这包括为您的字段选择正确的界面、显示及其选项。

这也是重新配置权限以确保它们准确的好时机。

重大变化

  • 过滤器运算符 已更改,现在它们前面带有下划线
    例如:/items/users?filter[comments.thread.title][like]=Directus
    现在是:/items/users?filter[comments][thread][title][_like]=Directus