跳到主要内容

在环境间复制工作

将工作从一个 n8n 实例迁移到另一个实例的步骤,取决于使用单个还是多个 Git 分支。

单分支 ​

使用单个 Git 分支时,复制工作的步骤如下:

  1. 将工作从一个实例推送到 Git 分支。
  2. 登录另一个实例,从 Git 拉取工作。可以自动拉取。

多分支 ​

使用多个 Git 分支时,需要在 Git 托管平台合并分支,才能在环境间复制工作。无法在 n8n 中直接跨环境复制工作。

常见流程如下:

  1. 在开发实例中工作。
  2. 将工作推送到 Git 的开发分支。
  3. 将开发分支合并到生产分支。操作指南请参阅 Git 托管平台的文档:
  4. 在生产 n8n 实例中拉取更改。可以自动拉取。

自动将更改发送到 n8n ​

可以使用 /source-control/pull API 端点将复制工作的部分流程自动化。在合并更改后调用该 API:

curl --request POST \
--location '<YOUR-INSTANCE-URL>/api/v1/source-control/pull' \
--header 'Content-Type: application/json' \
--header 'X-N8N-API-KEY: <YOUR-API-KEY>' \
--data '{"force": true}'

这样就能通过 GitHub Action 或 GitLab CI/CD,在合并时自动将更改拉取到生产实例。

GitHub Action 示例:

译注:原示例仍请求 /version-control/pull,且没有显式指定 POST;同一版本的“在环境间复制工作”和公共 API 指南示例使用 POST /api/v1/source-control/pull。此处保留原始代码以便对照,请以对应实例的 API 端点、方法和鉴权要求核对后再使用。

name: CI
on:
# Trigger the workflow on push or pull request events for the "production" branch
push:
branches: [ "production" ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
run-pull:
runs-on: ubuntu-latest
steps:
- name: PULL
# Use GitHub secrets to protect sensitive information
run: >
curl --location '${{ secrets.INSTANCE_URL }}/version-control/pull' --header
'Content-Type: application/json' --header 'X-N8N-API-KEY: ${{ secrets.INSTANCE_API_KEY }}'

相关资源 ​

本文为社区中文翻译。查看对应英文原文