AutomationFlowsDevOps › SQLite Backup to GitHub Workflow

SQLite Backup to GitHub Workflow

Original n8n title: Bn1

Bn1. Uses executeCommand, github. Event-driven trigger; 5 nodes.

Event trigger★★★★☆ complexity5 nodesExecute CommandGitHub
DevOps Trigger: Event Nodes: 5 Complexity: ★★★★☆ Added:

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "createdAt": "2025-02-02T04:06:28.201Z",
  "updatedAt": "2025-02-06T17:14:20.000Z",
  "id": "nVuJnKBzpwo9oOtC",
  "name": "Bn1",
  "active": false,
  "nodes": [
    {
      "parameters": {
        "executeOnce": false,
        "command": "mkdir -p backup && sqlite3 ~/.n8n/database.sqlite \\\n\"SELECT json_group_array(json_object('id', id, 'name', name, 'active', active, 'nodes', nodes, 'connections', connections, 'createdAt', createdAt, 'updatedAt', updatedAt)) FROM workflow_entity;\" \\\n> backup/workflows_backup.json && cat backup/workflows_backup.json\n\n"
      },
      "name": "Backup SQLite Database",
      "type": "n8n-nodes-base.executeCommand",
      "typeVersion": 1,
      "position": [
        260,
        100
      ],
      "id": "b79aba3b-f579-4f1f-9c7b-904378232f89",
      "alwaysOutputData": true,
      "retryOnFail": true,
      "executeOnce": true,
      "onError": "continueRegularOutput"
    },
    {
      "parameters": {
        "authentication": "oAuth2",
        "resource": "file",
        "owner": {
          "__rl": true,
          "value": "martingilberto",
          "mode": "name"
        },
        "repository": {
          "__rl": true,
          "value": "backup-n8n",
          "mode": "name"
        },
        "filePath": "workflows_backup.json",
        "fileContent": "{{ JSON.stringify($node[\"Code\"].json.output) }}",
        "commitMessage": "\"Backup autom\u00e1tico de workflows de n8n\""
      },
      "name": "Push to GitHub",
      "type": "n8n-nodes-base.github",
      "typeVersion": 1,
      "position": [
        640,
        100
      ],
      "id": "4991a867-9e54-40a2-864c-96d40fd14db6",
      "alwaysOutputData": true,
      "executeOnce": true,
      "retryOnFail": true,
      "credentials": {
        "githubOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "onError": "continueRegularOutput"
    },
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        0,
        0
      ],
      "id": "bc3d340d-3c27-41c2-a2e7-cfea00bc8a6d",
      "name": "When clicking \u2018Test workflow\u2019"
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "months",
              "triggerAtDayOfMonth": 2
            }
          ]
        }
      },
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        0,
        240
      ],
      "id": "b0f99434-28e9-4c1b-9787-d741bbfc00a2",
      "name": "Schedule Trigger"
    },
    {
      "parameters": {
        "jsCode": "// Obtener la salida del nodo Backup SQLite Database\nconst data = $node[\"Backup SQLite Database\"].json.stdout;\n\n// Imprimir los datos para depuraci\u00f3n\nconsole.log(\"Salida del backup:\", data);\n\n// Retornar el contenido formateado como JSON v\u00e1lido\nreturn [{ \"output\": JSON.stringify(JSON.parse(data), null, 2) }];\n\n"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        440,
        100
      ],
      "id": "c8b222c3-d548-4fc6-a15f-700a6c6c1578",
      "name": "Code"
    }
  ],
  "connections": {
    "Backup SQLite Database": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Test workflow\u2019": {
      "main": [
        [
          {
            "node": "Backup SQLite Database",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Backup SQLite Database",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code": {
      "main": [
        [
          {
            "node": "Push to GitHub",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "staticData": {
    "node:Schedule Trigger": {
      "recurrenceRules": []
    }
  },
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "versionId": "abaf39fa-75a3-4eb4-a240-519706ee3d1f",
  "triggerCount": 1,
  "tags": []
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Bn1. Uses executeCommand, github. Event-driven trigger; 5 nodes.

Source: https://github.com/martingilberto/backup-n8n/blob/a9fc440ebbdecec8dbb2d10dac3d03e2040d0d51/workflows/Bn1.json — original creator credit. Request a take-down →

More DevOps workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

DevOps

Code Github. Uses manualTrigger, stickyNote, httpRequest, noOp. Event-driven trigger; 24 nodes.

HTTP Request, GitHub, Execute Command +1
DevOps

Push And Update Files In Github. Uses manualTrigger, stickyNote, github, executeCommand. Event-driven trigger; 13 nodes.

GitHub, Execute Command, Git
DevOps

This workflow performs various Git operations. It starts with a manual trigger, sets the local repository path, decodes a file and then updates a file's content, adds, commits, and pushes changes to a

GitHub, Execute Command, Git
DevOps

This template lets you selectively import n8n workflows from a GitHub repository, even when your repository uses deeply nested folder structures.

Form Trigger, GitHub, n8n +1
DevOps

Code Github. Uses manualTrigger, stickyNote, n8n, httpRequest. Event-driven trigger; 25 nodes.

n8n, HTTP Request, GitHub +1