N8N中文教程
部署托管

n8n 的 CLI 命令#

n8n 包含一个 CLI(命令行界面),允许你通过命令行执行操作,而无需使用 n8n 编辑器。这些操作包括启动工作流、导出和导入工作流及凭据(credentials)。

运行 CLI 命令#

你可以将 CLI 命令用于自托管(self-hosted)的 n8n。根据你安装 n8n 的方式不同,运行命令的方式也有所区别:

  • npmn8n 命令可直接使用。本文档在以下示例中均采用此方式。
  • Dockern8n 命令可在你的 Docker 容器内使用:
1

| ``` docker exec -it <container_id> n8n


---|---

## 启动一个工作流#
你可以直接通过 CLI 启动工作流。

通过 ID 执行已保存的工作流:

1

| ```
n8n execute:workflow --id=<ID>

---|---

更改工作流的激活状态#

你可以使用 CLI 更改工作流的激活状态。

需要重启

这些命令作用于 n8n 的数据库。如果你在 n8n 正在运行时执行这些命令,更改将在你重启 n8n 后才会生效。

将指定 ID 的工作流激活状态设为 false:

1

| ``` n8n workflow:set --id= --active=false


---|---

将指定 ID 的工作流激活状态设为 true:

1

| ```
n8n workflow:set --id=<ID> --active=true

---|---

将所有工作流的激活状态设为 false:

1

| ``` n8n workflow:set --all --active=false


---|---

将所有工作流的激活状态设为 true:

1

| ```
n8n workflow:set --all --active=true

---|---

导出实体#

你可以使用 CLI 从 n8n 中导出数据库实体。该功能允许你将一种数据库类型(如 SQLite)中的所有实体类型导出,并导入到另一种数据库类型(如 Postgres)中。

命令标志(flags):

Flag说明
--help显示帮助信息
--outputDir输出目录路径
--includeExecutionHistoryDataTables包含执行历史数据表,默认情况下这些表会被排除,因为它们可能非常大
1

| ``` n8n export:all --outputDir=/path/to/output --includeExecutionHistoryDataTables

---|---

导出工作流和凭据#

你可以使用 CLI 从 n8n 中导出你的工作流(workflows)和凭据(credentials)。 命令标志:

Flag说明
--help显示帮助提示。
--all导出所有工作流/凭据。
--backup启用 --all、--pretty 和 --separate,用于备份。可选地设置 --output。
--id要导出的工作流 ID。
--output输出文件名,或在使用单独文件时指定目录。
--pretty格式化输出,使其更易读。
--separate每个工作流导出为一个独立文件(便于版本控制)。必须通过 --output 指定目录。
--decrypted以明文格式导出凭据。

工作流#

将所有工作流导出到标准输出(终端):

1

| ``` n8n


---|---
按 ID 导出某个工作流,并指定输出文件名:

1

| ```
n8n=<ID>=file.json

---|--- 将所有工作流导出到特定目录下的单个文件中:

1

| ``` n8n=backups/latest/file.json


---|---
使用 `--backup` 标志将所有工作流导出到特定目录(详情见上文):

1

| ```
n8n=backups/latest/

---|---

凭据#

将所有凭据导出到标准输出(终端):

1

| ``` n8n


---|---
按 ID 导出凭据,并指定输出文件名:

1

| ```
n8n=<ID>=file.json

---|--- 将所有凭据导出到特定目录下的单个文件中:

1

| ``` n8n=backups/latest/file.json


---|---
使用 `--backup` 标志将所有凭据导出到特定目录(详情见上文):

1

| ```
n8n=backups/latest/

---|--- 以明文格式导出所有凭据。你可以使用此方式将数据迁移到另一个配置文件中具有不同密钥(secret key)的安装实例。 敏感信息 所有敏感信息将在文件中可见。

1

| ``` n8n=backups/decrypted.json


---|---
## 导入实体#
你可以使用此命令导入之前通过 `export:entities` 命令导出的实体,支持将实体导入与导出时不同的数据库类型。当前支持的数据库类型包括:SQLite、Postgres。
导入前数据库应为空,可通过 `--truncateTables` 参数强制清空表。
命令标志:
Flag | 说明
---|---
--help | 显示帮助提示。
--inputDir | 包含导入文件的输入目录
--truncateTables | 在导入前清空表数据

1

| ```
n8ntrue

---|---
## 导入工作流和凭据#
你可以使用 CLI 从 n8n 中导入你的工作流(workflows)和凭据(credentials)。
更新 ID
导出工作流和凭据时,n8n 也会一并导出它们的 ID。如果你当前数据库中已存在相同 ID 的工作流或凭据,它们将被覆盖。为避免此问题,请在导入前删除或修改这些 ID。
可用参数:
参数 | 说明
---|---
--help | 显示帮助信息。
--input | 输入文件名,或在使用 `--separate` 时指定目录。
--projectId | 将工作流或凭据导入到指定项目中。不能与 `--userId` 同时使用。
--separate | 从 `--input` 指定的目录中导入 `*.json` 文件。
--userId | 将工作流或凭据导入到指定用户下。不能与 `--projectId` 同时使用。
迁移到 SQLite
n8n 对工作流和凭据的名称限制为 128 个字符,但 SQLite 不强制执行长度限制。
这可能导致导入过程中出现类似 **Data too long for column name**(列名数据过长)的错误。
此时,你可以在 n8n 界面中修改名称后重新导出,或在导入前直接编辑 JSON 文件。
### 工作流#
从特定文件导入工作流:

1

| ```
n8n=file.json

---|--- 从指定目录导入所有以 JSON 格式保存的工作流文件:

1

| ``` n8n=backups/latest/


---|---
### 凭据#
从特定文件导入凭据:

1

| ```
n8n=file.json

---|--- 从指定目录导入所有以 JSON 格式保存的凭据文件:

1

| ``` n8n=backups/latest/

---|---

许可证#

清除#

从 n8n 的数据库中清除现有许可证,并将 n8n 重置为默认功能:

1

| ``` n8n


---|---
如果您的许可证包含 浮动权益(floating entitlements),执行此命令时也会尝试将其释放回资源池,以便其他实例可以使用。
### 信息#
显示有关当前许可证的信息:

1

| ```
n8n

---|---

用户管理#

您可以使用 n8n CLI 重置用户管理。该操作会将用户管理系统恢复到初始未配置状态,并删除所有用户账户。 如果您忘记了密码且未设置 SMTP 邮件服务以通过电子邮件重置密码,可使用此命令。

1

| ``` n8n


---|---
### 为用户禁用 MFA#
如果用户丢失了其恢复代码(recovery codes),您可以通过此命令为其禁用多因素认证(MFA)。之后,该用户即可重新登录并再次设置 MFA。

1

| ```
n8n=johndoe@example.com

---|---
### 禁用 LDAP#
你可以使用以下命令重置 LDAP 设置。

1

| ```
n8n

---|---

卸载社区节点和凭据#

你可以使用 n8n CLI 来管理 社区节点。目前仅支持卸载社区节点和凭据,这在某个社区节点导致系统不稳定时非常有用。

命令标志:

Flag说明
--help显示 CLI 帮助信息。
--credential凭据类型。通过访问节点的 <NODE>.credential.ts 文件并获取 name 字段的值来获得该参数。
--package社区节点的包名称。
--uninstall卸载该节点。
--userId拥有该凭据的用户 ID。在自托管环境中,可通过查询数据库获取;在云环境中,可使用你的 API 密钥调用 API 获取。

节点#

通过包名称卸载一个社区节点:

1

| ``` n8n


---|---
例如,要卸载 Evolution API 社区节点,请输入:

1

| ```
n8n

---|---

凭据#

卸载一个社区节点的凭据:

1

| ``` n8n


---|---
例如,要卸载 Evolution API 社区节点凭据,请访问其 代码仓库,然后导航至 `credentials.ts` 文件 查找 `name` 字段的值:

1

| ```
n8n1234

---|---

安全审计#

你可以在 n8n 实例上运行一次 安全审计,以检测常见的安全问题。

1

| ``` n8n


---|---