Skip to content

在环境之间复制工作

将工作从一个 n8n 实例发送到另一个 n8n 实例的步骤有所不同,具体取决于您使用单个 Git 分支还是多个分支。

单分支

如果您有一个 Git 分支,则复制工作的步骤如下:

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

多个分支

如果您有多个 Git 分支,则需要在 Git 提供商中合并这些分支才能在环境之间复制工作。您无法在 n8n 中直接在环境之间复制工作。

一个常见的模式是:

  1. 在您的开发实例中开展工作。
  2. 将工作推送到 Git 中的开发分支。
  3. 将开发分支合并到生产分支。请参阅 Git 提供商的文档以获取相关指导:
  4. 在您的生产 n8n 实例中,拉取更改。您可以自动执行拉取操作

自动将更改发送至 n8n

您可以使用 API 端点自动执行部分工作复制过程。合并更改后调用 API:

1
2
3
4
5
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 示例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
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 }}'