PostgreSQLテーブルのCSV形式でのGitHub日次バックアップ - n8n ワークフロー

n8nワークフローを活用し、PostgreSQLのテーブルをCSV形式に変換してGitHubリポジトリに自動保存・更新する日次バックアップ。データ保全とバージョン管理を実現します。

ワークフロープレビュー

自動化の準備はいいですか?

このn8nワークフローテンプレートをダウンロードして、今すぐ使い始めましょう。

こんな方におすすめ


  • 自動化されたDBアーカイブが必要なDevOpsエンジニア

  • 本番データの日次バージョン管理バックアップを求める開発者

  • n8nワークフロー内での条件分岐ロジックの高度な使用例を探しているユーザー

  • n8nテンプレートを使った信頼性の高い自動データエクスポート手段を模索するデータ管理者

概要

信頼性の高いデータベースバックアップの維持は、あらゆるアプリケーションにとって極めて重要です。この専用n8nワークフローは、PostgreSQLデータの抽出、変換、そしてGitHubをストレージおよびバージョン管理に使用したアーカイブまでを自動化する包括的なソリューションを提供します。定期実行n8nトリガーを利用することで、システムは24時間ごとに指定されたDBテーブルからデータを取得し、汎用的なCSV形式に変換した後、条件に基づいてリポジトリにコミットします。この高度なプロセスはすべてn8nワークフロー内で構築されており、テーブルが新規(アップロードが必要)か既存(更新が必要)かを判断し、効率性を確保し不要なファイル重複を防ぎます。この堅牢なn8nノード設定は、皆様の運用監視ツールキットにとって優れた追加機能となるでしょう。

仕組み

この自動化は、24時間ごとに実行されるように設定された日次スケジュールn8nトリガーによって開始されます。


  1. 準備(GitHubチェック): 最初にn8nのGitHubノードを使用して、対象リポジトリ内の既存ファイル一覧を取得します。これらのファイル名は、後ですぐに参照できるよう単一のリストに集約されます。

  2. テーブル一覧取得(Postgres): 並行して、PostgreSQL n8nノードがDBに接続し、publicスキーマのinformation_schema.tablesから全テーブル名を取得します。

  3. データ抽出ループ: ワークフローはメインのバッチループ(アイテムをループ処理)に入り、テーブル名を一つずつ処理します。各テーブルに対し、PostgreSQL n8nノードがSELECT クエリを実行して全データを取得します。

  4. 変換: 取得したテーブルのJSONデータはファイルに変換n8nノードに渡され、バイナリのCSVファイルに変換されます。生成されるファイル名は、ソーステーブル名(例: users.csv)を動的に使用します。

  5. 条件付きアップロード/更新: 次のアイテムを単一項目に分割n8nノードがCSVファイルを最終アクション用に準備します。IF n8nノード(リポジトリにファイルが存在するか確認)が、CSVファイル名をステップ1で集約したGitHubファイルリストと比較判定します。

  6. アクション:

True(ファイルが存在する場合): ワークフローはファイルを更新 [GITHUB] n8nノードを実行し、新しいCSVバイナリデータを既存のファイルパスにコミットします。
* False(新規ファイルの場合): ワークフローはファイルをアップロード [GITHUB] n8nノードを実行し、リポジトリに新しいファイルを作成します。

インストールガイド

この強力なn8nワークフローテンプレートを導入するには、以下の手順に従ってください。


  1. インポート: 提供されたJSONコードをコピーし、お使いのn8nインスタンスの「ワークフロー」>「新規作成」>「JSONからインポート」オプションから直接インポートします。

  2. PostgreSQL認証情報: PostgreSQL n8nノード(テーブルを一覧表示およびテーブルを一覧表示1)を見つけます。データベースに接続するための認証情報を設定する必要があります。テーブル一覧取得のためにinformation_schema.tablesへのアクセス権と、バックアップ対象テーブルに対するSELECT権限が許可されていることを確認してください。

  3. GitHub認証情報: GitHub n8nノードインスタンスのOAuth2認証情報を設定します。このアカウントは、ファイルのリスト取得、更新、アップロードのために、対象リポジトリ(テンプレート内ではgithub-repo)への読み取り/書き込みアクセス権限が必要です。

  4. 設定: GitHub n8nノードのパラメータを更新し、ご自身のGitHubの「オーナー」名と「リポジトリ」名に合わせてください。

  5. 有効化: ワークフローを保存し、トグルを「非アクティブ」から「アクティブ」に切り替えます。これで日次スケジュールトリガーにより、24時間ごとのバックアップが実行されます。

ノード詳細

日次スケジュール (n8nトリガー): 24時間に1回、バックアップ自動化全体を実行する開始ノードです。
リポジトリからファイル一覧を取得 [GITHUB] (GitHub n8nノード): 対象GitHubリポジトリの現在の内容を一覧表示し、どのテーブルのバックアップが既に存在するかを確認します。
ファイル名を集約 [GITHUB] (アイテムリスト n8nノード): GitHubに存在するファイル名を統合し、後続のIFノードでのチェック処理を効率化します。
テーブルを一覧表示1 (PostgreSQL n8nノード): DBのシステムスキーマ (information_schema) を問い合わせ、バックアップが必要な全テーブルのリストを取得します。
テーブルを一覧表示 (PostgreSQL n8nノード): ループ内で実行され、直前のn8nノードから受け取った特定のテーブル名に基づき、全データ (operation: select, returnAll: true) を動的にクエリします。
ファイルに変換1 (ファイルに変換 n8nノード): PostgreSQLから取得した生データ(JSON形式)をバイナリCSVファイルに変換し、バージョン管理システムとの互換性を保証します。ファイル名はテーブル名を使って動的に設定されます。
リポジトリにファイルが存在するか確認 (IF n8nノード): 集約された既存ファイルリストを使用して、現在のCSVファイルを更新する(True)か、新規アップロード(False)するかを決定する、中核的な制御フローノードです。
ファイルを更新 [GITHUB] / ファイルをアップロード [GITHUB] (GitHub n8nノード): これらのノードは、CSVバイナリデータをリポジトリに最終コミットする処理を担当し、日次バックアップの保存とバージョン管理を確実に行います。

関連するn8nワークフロー

無料

ノード: 9 ノード
更新済み: 12月 26 2025
すべて表示
作成者

AI and Automation developer. Im implementing n8n and ai tools to automate marketing and sales in companies

特徴*