升级/更新项目
1.备份你的项目
2.运行npm update
3.运行npx directus database migrate:latest
更新数据库
备份项目
- 复制每个存储适配器中的文件,并将它们存储在安全的地方。
- 复制
/api/.env
文件,并将其存放在安全的地方。 - 创建数据库转储。
迁移项目
Directus 的操作不依赖于数据库以外的任何东西。 因此,可以通过使用数据库转储将整个数据库移动到新位置来迁移 Directus 项目。
文件存储
如果您上传了文件,请确保也将这些文件复制过来,或者在 Directus 的新位置中使用相同的存储位置。
降级项目
Directus 可以通过转到您的终端,导航到您的项目文件夹并运行npm install directus@<version>
恢复到早期版本。
如果您为较新版本运行了任何数据库迁移,则可以通过运行“npx directus database migrate:down”来恢复这些迁移
删除项目
- 可选:备份存储在项目根目录中的任何本地文件
- 可选:备份项目根目录中的任何自定义代码和扩展
- 可选:备份整个数据库,仅备份系统表,或仅备份项目表
- 从服务器删除项目的根目录
- 从数据库中删除所有 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 Pro 或 TablePlus 之类的工具,导出您的 v8 用户表并将它们导入您的 v9 数据库。
Directus v9 将自动识别您的表格,您将准备好开始使用 v9。
注意: 如果您有对用户和文件的引用,请确保将它们更新为新的 UUID 格式。
3) 配置 Directus
一旦表格进入,您就可以开始配置模式的详细信息。这包括为您的字段选择正确的界面、显示及其选项。
这也是重新配置权限以确保它们准确的好时机。
重大变化
- 过滤器运算符 已更改,现在它们前面带有下划线
例如:/items/users?filter[comments.thread.title][like]=Directus
现在是:/items/users?filter[comments][thread][title][_like]=Directus