Skip to content

n8n v1.0 迁移指南

本文档概述了在更新到 n8n 1.0 版本之前您应该注意的内容。

n8n 1.0 的发布标志着 n8n 在面向严苛生产环境的道路上迈出了重要的一步。1.0 版本凝聚了我们过去四年的辛勤付出,旨在将 n8n 打造成为最易用、功能最强大、用途最广泛的自动化工具。n8n 1.0 现已准备好投入生产。

新功能

代码节点中的 Python 支持

虽然 JavaScript 仍然是默认语言,但现在您也可以在代码节点中选择 Python 作为选项,甚至可以使用许多 Python 模块。请注意,在 v1.0 之前添加到工作流的代码节点中,Python 不可用。

PR #4295 , PR #6209

执行顺序

n8n 1.0 为多分支工作流引入了新的执行顺序:

在多分支工作流中,n8n 需要确定在分支上执行节点的顺序。以前,n8n 会先执行每个分支的第一个节点,然后执行每个分支的第二个节点,依此类推(广度优先)。新的执行顺序确保每个分支在执行下一个分支之前完全执行(深度优先)。分支根据其在画布上的位置从上到下执行。如果两个分支位于同一高度,则最左侧的分支将首先执行。

n8n 过去只要多输入节点的第一个输入收到数据,就会执行它们。连接到多输入节点第二个输入的节点无论是否收到数据都会自动执行。n8n 1.0 中引入的新执行顺序简化了此行为:现在节点仅在收到数据时才会执行,并且多输入节点需要至少一个输入有数据才能执行。

您现有的工作流将使用旧版顺序,而新的工作流将使用 v1 顺序执行。您可以在工作流设置中配置每个工作流的执行顺序。

公关#4238公关#6246公关#6507

弃用

MySQL 和 MariaDB

n8n 已停止支持 MySQL 和 MariaDB 作为其存储后端。这些数据库系统目前仅有少数用户使用,但需要持续的开发和维护工作。n8n 建议迁移到 PostgreSQL,以获得更好的兼容性和长期支持。

公关 #6189

EXECUTIONS_PROCESS 和“own”模式

以前,您可以使用环境变量来指定执行是否应在进程中运行,还是在其进程中运行。此选项和模式现已弃用,并将在 n8n 的未来版本中移除。这是因为它增加了代码复杂性,但带来的收益却微乎其微。从 n8n 1.0 开始,将成为新的默认设置。

请注意,在模式下执行的启动速度比 模式下快得多。但是,如果工作流消耗的内存超过可用内存,则可能会导致整个 n8n 应用程序崩溃,而不仅仅是工作线程崩溃。为了缓解这种情况,请确保分配足够的系统资源或配置队列模式以在多个工作线程之间分配执行。

公关 #6196

重大变更

Docker

权限更改

使用基于 Docker 的部署时,n8n 进程现在由用户运行,而不是。此更改提高了安全性。

如果启动 n8n 时 n8n 容器日志中出现权限错误,则可能需要通过在 Docker 主机上执行以下命令来更新权限:

1
docker run --rm -it --user root -v ~/.n8n:/home/node/.n8n --entrypoint chown n8nio/base:16 -R node:node /home/node/.n8n

图像移除

我们已移除 Debian 和 RHEL 镜像。如果您之前使用这些镜像,则需要更改您使用的镜像。除非您基于其中一个镜像创建自定义镜像,否则这应该不会导致任何错误。

入口点更改

容器的入口点已更改,您不再需要指定 n8n 命令。如果您之前运行的是 n8n命令,则现在

公关 #6365

由于表达式错误导致工作流失败

工作流执行可能会由于表达式中的语法或运行时错误(例如引用不存在节点的错误)而失败。虽然表达式本身会在前端抛出错误,但此更改确保 n8n 也会在后端抛出错误,而之前这些错误在后端会被默默忽略。为了接收工作流失败的通知,n8n 建议在工作流设置下设置“错误工作流”。

公关 #6352

强制业主账户

此更改强制要求用户管理,并移除了对其他身份验证方法(例如 BasicAuth 和外部 JWT)的支持。请注意, n8n.cloud或自定义方案中允许的用户数量仍然取决于您的订阅。

公关 #6362

自定义节点安装目录

n8n 将不再从其全局目录加载自定义节点。相反,您必须将它们安装(或链接)到(或由 定义的目录)。作为 npm 包的自定义节点将位于 中。如果您有使用 链接到全局目录中的自定义节点,则需要将它们重新链接到 中。

公关 #6396

WebSockets

环境变量可用于配置将更新推送到用户界面的两种可用方法之一:和。从 n8n 1.0 开始,是默认方法。

公关 #6196

日期转换函数

n8n 提供了各种用于日期操作的转换函数。这些函数可以返回 JavaScript或 Luxon对象。新行为下,返回类型始终与输入匹配。如果对 调用日期转换函数,它将返回。同样,如果对对象调用该函数,它将返回一个对象。

要识别可能受此更改影响的任何工作流和节点,您可以使用此实用程序工作流

关于日期转换函数的更多信息,请参考官方文档

公关 #6435

执行数据保留

从 n8n 1.0 开始,所有成功、失败和手动执行的工作流都会默认保存。您可以在“工作流设置”下针对每个工作流修改这些设置,也可以使用相应的环境变量全局修改。此外,该设置将默认启用,设置为 10,000。这些默认设置旨在防止使用 SQLite 时性能下降。请务必根据您的具体需求和系统容量进行配置。

公关 #6577

删除了 N8N_USE_DEPRECATED_REQUEST_LIB

旧版库已弃用一段时间。从 n8n 1.0 开始,通过设置环境变量在 HTTP 请求节点中回退到旧版库的功能已完全移除。HTTP 请求节点现在将始终使用新接口。

如果您构建自定义节点,请参阅HTTP 请求助手以获取有关迁移到新界面的更多信息。

公关 #6413

已删除 WEBHOOK_TUNNEL_URL

从 0.227.0 版本开始,n8n 已将配置选项重命名为。在 n8n 1.0 中,已被移除。请更新您的设置以反映新名称。有关此配置选项的更多信息,请参阅文档

公关 #1408

删除 Node 16 支持

n8n 现在需要 Node 18.17.0 或更高版本。

更新至 n8n 1.0

  1. 创建 n8n 的完整备份。
  2. n8n 建议先更新到最新的 n8n 0.x 版本,然后再更新到 n8n 1.x。这样可以让您准确定位到正确版本中存在的任何潜在问题。确认 n8n 0.x 启动正常后,请继续执行下一步。
  3. 仔细阅读上面的弃用重大变化部分,以评估它们如何影响您的设置。
  4. 更新至 n8n 1.0:
    • 测试期间(2023 年 7 月 24 日之前):如果使用 Docker,请拉取
    • Docker 镜像。2023
    • 年 7 月 24 日之后:如果使用 Docker,请拉取
    • Docker 镜像。
  5. 如果遇到任何问题,请重新部署以前的 n8n 版本并恢复备份。

报告问题

如果您在更新到 n8n 1.0 的过程中遇到任何问题,请在社区论坛寻求帮助。

谢谢

我们想借此机会感谢所有用户一直以来的支持和反馈。您的贡献至关重要,帮助我们将 n8n 打造成为最佳的自动化工具。我们很高兴能与您继续合作,共同推进 1.0 版本及后续版本的发布。感谢您与我们携手同行!