Directus 12.5 介绍与选型指南

介绍开源数据平台 Directus 12.5.0 的定位、核心架构、功能特性与官方快速上手示例,并以 GitHub 活跃度、发布节奏、兼容矩阵三大量化维度对比 Strapi、Payload、NocoDB,给出分场景选型建议(信息基准 2026-10-18)。

DirectusDirectusCMS2026/10/18

Directus 12.5 介绍与选型指南

‍‍​​‌​‍‍​​‌​> 目标:面向需要在自有服务器上搭建数据平台 / Headless CMS 的工程师,介绍 Directus 12.5 的定位、架构、功能与同类产品(Strapi、Payload、NocoDB)的量化对比,并给出选型建议。本篇为认知篇,全部结论以官方来源实查为准(查询日期 2026-10-18),不做本地安装实测;部署实操见《Directus Docker Compose 部署指南》。

一、环境信息

本篇是软件介绍与选型认知篇,不依赖本地安装环境,信息基准以官方资料为准。先明确「本文介绍的是哪个版本、结论来自哪里」,再进入正文,避免读者把过时信息套用到当前版本。

  • 信息基准:查询日期 2026-10-18;本篇所有版本号、活跃度、兼容性数据均在该日通过官方渠道实查取得,未做本地安装实测。
  • 版本依据:本次介绍的版本为 Directus 12.5.0(当前最新稳定版),主要版本线为 v12。
依据项实查结果来源查询日期
最新稳定版12.5.0npm registry(directus 包 latest 标签)2026-10-18
发布日期2026-10-07GitHub Releases(v12.5.0)2026-10-18
运行时要求Node.js ≥ 22npm 包元数据 engines 字段2026-10-18
发布物分发官方在 Docker Hub 以 directus/directus:12.5.0 分发运行包(2026-10-07 更新)Docker Hub 标签列表2026-10-18

关键解读:v12.5.0 于 2026-10-07 同步出现在 GitHub Releases、npm 与 Docker Hub 三处,版本一致,可放心作为基线版本;官方文档明确提示「Version 12 存在 Breaking changes,升级前需检查变更清单」,从 v10/v11 升级的读者应先读官方 Upgrading 文档。

官方来源清单(本篇引用的全部出处):

二、软件概述

Directus 是一个开源的数据库优先(Database-First)数据平台,由 Monospace Inc 维护。当前最新稳定版为 12.5.0。它的核心工作方式是:把任意主流 SQL 数据库交给 Directus,它通过数据库内省(Introspection)读取已有的表结构,即刻生成一套完整的 REST + GraphQL API,并附带一个功能完备的 Web 管理台(Data Studio)——内容管理、文件管理、用户权限、自动化流程、仪表盘一应俱全。

与「先在工具里建模、再把内容存进自家数据库」的传统 Headless CMS 不同,Directus 不接管、不迁移你的数据:已有 MySQL/PostgreSQL 库原样保留,Directus 只是在其上叠加 API 层与管理层。这一点决定了它的两大典型用法:

  • 给存量数据库加 API 与管理界面:已有业务库(如订单、会员)不用改一行 SQL,就能获得标准化 REST/GraphQL 接口和可视化后台;
  • 从零构建业务系统 / 内容站点:在 Data Studio 里以无代码方式建模,直接获得生产级 API 与权限体系。

发展脉络与身位:

  • 项目仓库创建于 2012-12-12(GitHub API 实查),2021 年发布完全重写的 v9,此后演进至当前 v12 主线;由 Monospace Inc 商业化维护,同时开放自托管。
  • 许可:Directus 12 采用 Monospace Sustainable Core License(MSCL-1.0-GPL,源可用许可)——官方文档表述为「免费核心层(core tier)无需许可证;更高限额与附加功能需要付费许可,符合条件的主体可申请 Open Innovation Grant 获取免费商用授权」。这与早期版本的宽松开源许可不同,商用前务必阅读官方 Licensing 页面。

技术栈与运行要求(官方 Requirements 页,2026-10-18 实查):

项目要求
运行时Node.js ≥ 22(npm engines 字段)
资源下限1 × 0.25 vCPU / 512 MB(最低);推荐 2 × 1 vCPU / 2 GB
数据库PostgreSQL、MySQL、SQLite、MS SQL Server、MariaDB、CockroachDB、OracleDB 的 LTS 版本
缓存 / 水平扩展Redis(缓存推荐启用;水平扩展场景为必需项)
文件存储存储适配器模式:本地文件系统或 S3 等对象存储适配器

关键解读:官方把最低资源压到 0.25 vCPU / 512 MB,说明 Directus 可在小型服务器上单实例跑通;但官方同时强调「自托管容易低估资源」,生产环境建议按推荐值 2 vCPU / 2 GB 起步并配合 Redis 缓存。数据库支持面覆盖七大主流 SQL 库(均限 LTS 版本),且明确不支持一个数据库内多 Schema 的接入方式——库结构规划时每个 Directus 项目对应一个 Schema。

三、核心架构

Directus 的架构可以概括为「一层 SQL 抽象 + 一套自动生成的 API + 一个 Vue 管理台」。理解这三个组件如何协作,是判断它是否适配你场景的基础。

3.1 数据库内省层(Introspection)

Directus 启动时读取所连接 SQL 库的表、字段、外键关系,生成内部元数据模型(Directus 系统表本身也存放在同一库中,以 directus_ 前缀命名)。由此带来两个特征:

  • 已有库直接接入:表结构无需迁移,数据不搬移,业务系统与 Directus 共享同一份库;
  • 系统表同库存放:directus_users、directus_roles、directus_files 等系统集合与业务表同库,权限、文件、日志等能力都落在 SQL 层。

💡 技术拓展:数据平台接入数据库有两条主流路线,选型时先分清——

路线原理代表产品取舍
内省代理(Introspection)读取已有库结构生成 API,不接管 SchemaDirectus存量库零改造接入;但库设计质量直接决定 API 质量
Schema 托管 / 代码优先在工具或代码中定义模型,自行建表迁移Strapi(内容类型定义)、Payload(代码定义 Schema)模型与业务代码同源、可版本化;但不适合「库已存在」的场景
无代码表格在表格界面里建表,底层用自带或外接库NocoDB最快上手;复杂约束与事务能力弱于 SQL 原生建模

Directus 采用第一条路线,适合「数据库已存在、要加 API 与后台」的场景;若从零开始且希望模型进代码仓库,Payload/Strapi 路线更自然。

3.2 API 层:REST + GraphQL + Realtime

每个集合(Collection,对应库中一张表)自动获得一致的 REST 端点(/items/<collection>),同时提供 GraphQL 端点、Realtime(WebSocket 订阅数据变更)与 SDK。所有端点共享同一套查询参数体系(fields、filter、sort、limit、offset、deep、aggregate 等),权限由角色(Role)策略在 API 层统一裁决。

3.3 Data Studio 管理台

Data Studio 是随服务分发的 Vue 3 单页应用,提供:数据模型设计器、内容编辑(含草稿/发布、多语言、版本)、文件库(图片处理)、用户与权限管理、Insights 仪表盘、Flows 自动化编排。非技术人员可以完全在浏览器里完成建模与内容运营,无需写代码。

3.4 扩展与缓存

  • 扩展机制:Interface(字段编辑器)、Display(展示)、Layout(列表布局)、Module(页面)、Hook(服务端钩子)、Endpoint(自定义路由),以扩展包形式随目录挂载加载;
  • 缓存与扩展性:单实例可直接运行;多实例水平扩展时官方要求引入 Redis(缓存 + 变更通知),文件走共享存储适配器。

架构小结:数据落 SQL、状态进 Redis、文件进存储适配器、界面与 API 无状态——这个结构与主流 Web 服务一致,因此 Directus 的部署、备份、扩容都能套用常规服务器运维经验。

四、功能特性

按官方 Getting Started 与产品文档归纳,12.5 版本的主要功能域如下(均为产品内置能力,非扩展件):

功能域能力要点
数据建模无代码建模:集合、字段类型、关系(多对一/一对多/多对多)、字段校验、翻译字段、数据字典
REST API每个集合自动生成 CRUD 端点,统一查询参数(fields/filter/sort/limit/aggregate 等)
GraphQL API同一份数据模型的 GraphQL 查询与变更端点
RealtimeWebSocket 订阅集合数据变更(配置项 WEBSOCKETS_ENABLED 开启)
认证与权限账号密码、访问令牌(Access Token)/静态令牌、基于角色的细粒度权限(RBAC)、会话 Cookie;SSO 等企业能力见许可条款
文件管理上传、图片变换(裁剪/缩略图)、存储适配器(本地/S3 等)
Flows 自动化事件/定时/手工触发的流程编排,可视化配置操作链(发通知、调外部接口、改数据等)
Insights 仪表盘图表、统计卡片等可视化面板,面向运营监控
多语言字段级多语言(Translations)、界面多语言
搜索与聚合全局搜索、聚合查询(count/sum/avg 等)
扩展生态六类扩展点 + 社区市场;支持自研扩展包
Schema 迁移Schema Snapshot/Diff/Apply,便于把建模结果在环境间迁移(开发→生产)

关键解读:Directus 把「内容系统的常见全家桶」都内置了——如果需求集中在「数据 + API + 后台 + 自动化」,一套 Directus 可以省掉多个独立组件;反过来,若只要其中一小块(如纯 API 网关),它的体量反而偏重。功能取舍应结合下文第七章的选型对比判断。

五、快速上手(引自官方文档)

本篇为认知篇,不做本地安装实测。以下最小示例引自官方文档《Use the API》(https://directus.com/docs/getting-started/use-the-api ,查询日期 2026-10-18),命令形态照抄官方原文,替换值已注明;完整部署实操见《Directus Docker Compose 部署指南》。

官方文档描述的最小路径是:部署一个 Directus 项目 → 在 Data Studio 中创建带 title、content 字段的 posts 集合 → 在用户详情页创建静态令牌 → 用 curl 读写数据。

读取集合数据(引自官方 Terminal 示例):

curl \
  --header 'Authorization: Bearer <access_token>' \
  --url 'https://directus.example.com/items/posts'
  • <access_token>:替换为你项目中的访问令牌(登录接口返回的 access token,或在用户详情页创建的静态令牌);
  • https://directus.example.com:替换为你的项目访问地址,自托管时形如 http://<服务器IP>:8055。

带查询参数的过滤读取(引自官方示例,仅返回 status 为 published 的记录的 id 与 title):

curl \
  --header 'Authorization: Bearer <access_token>' \
  --url 'https://directus.example.com/items/posts?filter[status][_eq]=published&fields=id,title'

创建数据(引自官方示例,向集合 POST 一个对象即创建一条记录):

curl \
  --request POST \
  --header 'Authorization: Bearer <access_token>' \
  --header 'Content-Type: application/json' \
  --data '{ "title": "Hello Universe!" }' \
  --url 'https://directus.example.com/items/posts'

要点提示:官方说明集合读取默认每页返回 100 条,超出需用 limit/offset 翻页;所有集合端点结构与查询参数一致,学会一个集合即学会全部。本文 D5 篇《Directus 12.5 API 使用详解》将对上述端点逐条实测并回显真实 JSON。

六、适用场景与限制

6.1 典型适用场景

结合数据库优先的产品定位,以下场景中 Directus 收益最直接:

  1. 给存量业务库加 API 与后台:公司已有 MySQL/PostgreSQL 业务库,需要快速对外提供 REST/GraphQL 接口与运营后台,且不想动库结构——内省接入,当天可用;
  2. 企业内容站 / 多语言内容管理:官网、帮助中心、营销内容,编辑团队在 Data Studio 里运营,前端经 API 取数;
  3. 内部管理系统快速搭建:用无代码建模 + 细粒度 RBAC + Insights 仪表盘拼出审批、台账类内部系统,Flows 承接通知与联动;
  4. 移动端 / 小程序后端:文件上传、图片处理、用户权限开箱即用,省掉自建后端的脚手架工作;
  5. 数据中台的轻量服务层:多张源表需要统一鉴权、统一查询参数、按角色暴露子集的场景。

6.2 已知限制

选型前需要接受的边界(均来自官方文档与许可条款,2026-10-18 查询):

  • 许可约束:MSCL 源可用许可下,免费核心层有功能与限额边界,更高限额/附加功能需付费许可或 Open Innovation Grant;对许可敏感(如要求 OSI 开源许可)的团队需评估;
  • 单库单 Schema:官方明确不支持一个数据库多 Schema 接入,已有库若按多 Schema 规划需拆分;
  • 水平扩展依赖 Redis:多实例必须引入 Redis,单机小场景可忽略;
  • 数据库版本窗口:仅支持七大 SQL 库的 LTS 版本,老版本(如 MySQL 5.7)不在支持之列;
  • 数据库设计质量前置:内省模式下,库设计混乱会直接映射为混乱的 API 与管理界面,接入前建议先整理表结构。

七、同类选型对比

本节在 Directus、Strapi、Payload、NocoDB 四个同类产品之间做量化对比。四个产品都提供「数据库 + API + 管理后台」的交付形态,但实现路线不同(内容优先 / 代码优先 / 数据优先 / 无代码表格),单看功能列表容易误判,需要用社区活跃度、版本节奏、兼容矩阵三个可量化维度校准。

💡 技术拓展:这一类产品业内统称 Headless CMS / 数据平台,实现路线主要有四条——

路线原理代表适合
内容优先工具内定义内容类型,内容存自家库Strapi以内容为中心的站点,从零开始
代码优先Schema 用代码定义,与前端框架同仓PayloadNext.js 团队,模型要进代码评审
数据优先内省已有 SQL 库,叠加 API 与后台Directus存量库接入、业务系统后端
无代码表格表格界面建表/接外部库NocoDB运营自助、轻量协作,类 Airtable

本文介绍的 Directus 属于「数据优先」路线;下文量化对比可看出四者在社区体量、发布节奏、数据库兼容上的明显差异。

7.1 社区活跃度(量化)

以下数据于 2026-10-18 通过 GitHub API 与 npm downloads API 实查:

指标DirectusStrapiPayloadNocoDB
GitHub Stars38,57673,33145,32065,294
GitHub Forks4,9779,8894,3045,095
仓库创建时间2012-122015-092021-012017-10
npm 包周下载(2026-10-10~16)12,061(directus)5,425(strapi 包)581,876(payload)2,381(nocodb)
维护方Monospace IncStrapi Solutions SASPayload Systems Inc(Figma 旗下)NocoDB Inc

解读:Stars 体量 Strapi 最大(7.3 万),NocoDB 次之(6.5 万),Payload 与 Directus 在 4~4.5 万一档;四者仓库创建均超过 4 年、至今活跃,社区都属于成熟梯队。npm 周下载需注意口径差异:Payload 数字极高是因为它作为 Next.js 项目的依赖被 npm install,每个前端项目装一次;Strapi 官方推荐以 @strapi/strapi 度量;NocoDB 主要经 Docker 分发,npm 下载量天然偏低。因此 npm 下载仅作参考,不建议跨产品直接比较,Stars/Forks 与发布节奏更适合横向校准。

7.2 版本节奏(量化)

以下为各仓库 GitHub Releases 近期记录(2026-10-18 实查):

指标DirectusStrapiPayloadNocoDB
最新稳定版12.5.05.58.0(@strapi/strapi)3.91.02026.09.1
最新版发布日期2026-10-072026-10-072026-10-132026-09-10
近期节奏月度小版本(12.2.0→12.5.0 间隔 07-29/08-18/09-22/10-07)周更(v5.57.0 09-30 → v5.58.0 10-07)周更(v3.91.0 10-13;v4.0.0-beta.2 10-15 预发布中)双周~月度(2026.09.0 09-03 → 2026.09.1 09-10),日历版本
版本化风格语义化语义化语义化日历化(YYYY.MM.x)

解读:四个产品 2026 年内都保持高频率发布,不存在停滞风险;Directus 月度小版本 + 语义化版本,对生产环境升级节奏最友好(升级窗口可预期);Strapi/Payload 周更依赖其 LTS/升级工具链消化;NocoDB 的日历版本便于按时间定位问题,但语义化程度低。选型时应同步关注各自「升级是否需要迁移脚本」——Directus v12 官方提示含 Breaking changes,跨大版本升级要读变更清单。

7.3 兼容矩阵(量化)

以下兼容信息分别取自各官方文档(查询日期均为 2026-10-18,来源见 7.5 节链接):

维度Directus 12.5Strapi 5.58Payload 3.91NocoDB 2026.09
Node.js≥ 22≥ 20(Active/Maintenance LTS:v22/v24/v26)≥ 20.18.1≥ 22
支持数据库PostgreSQL、MySQL、SQLite、MS SQL Server、MariaDB、CockroachDB、OracleDB(LTS 版本)PostgreSQL 17(最低 14)、MySQL 8.4(最低 8.0)、MariaDB 11.4(最低 10.3)、SQLite 3;不支持 NoSQLMongoDB(Mongoose 适配器)、PostgreSQL(Drizzle)、SQLite(Drizzle)默认内置 SQLite;可接入外部数据源(PostgreSQL、MySQL、SQL Server、Oracle 等)
许可MSCL-1.0-GPL(源可用;免费核心层,高限额/附加功能付费,可申请 Open Innovation Grant)核心 MIT;ee/ 目录功能为专有企业版条款MITSustainable Use License(源可用,限制二次分发/转售)
API 风格REST + GraphQL + WebSocket RealtimeREST + GraphQL + WebSocketREST + GraphQL + Local APIREST
管理界面Data Studio(内置)Admin Panel(内置)Admin Panel(内置)表格界面(内置)
部署形态自托管运行包 / 官方云Node 进程自托管 / 官方云嵌入 Next.js 应用 / 官方云自托管运行包 / 官方云

解读:数据库兼容面 Directus 最宽(七种 SQL 库,含 SQL Server 与 OracleDB);Strapi 限定四种且最低版本要求最高(PG 14 起);Payload 是唯一以 MongoDB 为一等公民的;NocoDB 主打「外接已有库」。许可上 Payload 最宽松(MIT),Directus 与 NocoDB 同属源可用许可但条款不同,商用合规务必各自读原文。若团队技术栈以 Next.js 为中心,Payload 的代码优先形态契合度最高;若以已有 SQL 库为中心,Directus 的内省路线成本最低。

7.4 选型建议

按「如果……则……」给出结论性建议:

  • 已有生产 SQL 库(MySQL/PostgreSQL 等),要快速加 API 与管理后台 → 选 Directus:内省接入不动库结构,这是其余三者做不到或成本很高的路线;
  • 从零开始做内容站,团队重编辑运营 → Strapi 或 Directus:Strapi 内容生态与插件市场成熟;若同时想要文件、仪表盘、自动化全家桶,Directus 内置能力更全;
  • Next.js 全栈团队,模型要进代码仓库走评审 → 选 Payload:与框架同仓、TypeScript 原生、MIT 许可;
  • 运营团队自助建表、类 Airtable 协作 → 选 NocoDB:表格界面最贴近电子表格习惯;
  • 要求完全 OSI 开源许可(如商业化再分发) → 优先 Payload(MIT)/ Strapi 核心(MIT),Directus 与 NocoDB 的源可用许可需先做法务评估;
  • 需要 SQL Server / OracleDB / CockroachDB 兼容 → 四者中仅 Directus 官方支持。

八、参考链接

以下为本篇全部结论来源,均在 2026-10-18 访问核实:

  1. Directus 官网:https://directus.io
  2. Directus 官方文档 — Getting Started Overview:https://directus.com/docs/getting-started/overview
  3. 官方文档 — Create a Project(含官方 Compose 示例与参数说明):https://directus.com/docs/getting-started/create-a-project
  4. 官方文档 — Use the API(本篇第五章示例来源):https://directus.com/docs/getting-started/use-the-api
  5. 官方文档 — Self-Hosting Overview(许可与自托管考量):https://directus.com/docs/self-hosting/overview
  6. 官方文档 — Self-Hosting Requirements(资源/数据库/Redis 要求):https://directus.com/docs/self-hosting/requirements
  7. 官方文档 — Licensing Overview(MSCL 许可说明):https://directus.com/docs/licensing/overview
  8. GitHub 仓库(Stars/Forks/Releases 数据):https://github.com/directus/directus
  9. GitHub Releases(v12.5.0 及发布日期):https://github.com/directus/directus/releases
  10. npm registry(版本与 Node.js 引擎要求):https://www.npmjs.com/package/directus
  11. npm downloads API(周下载量):https://api.npmjs.org/downloads/point/last-week/directus
  12. Strapi 安装要求与数据库矩阵:https://docs.strapi.io/cms/installation/cli
  13. Payload 数据库适配器文档:https://payloadcms.com/docs/database/overview
  14. NocoDB 官网与许可:https://nocodb.com 、https://github.com/nocodb/nocodb