顯示具有 postgres 標籤的文章。 顯示所有文章
顯示具有 postgres 標籤的文章。 顯示所有文章

2025年11月25日 星期二

Connect to the n8n PostgreSQL database

Connect to the n8n PostgreSQL database 

在使用docker compose安裝n8n+PostgreSQL,PostgreSQL是用container啟動服務,無法直接連接PostgreSQL。要直接連接PostgreSQL進行資料管理有以下2個方法。

主機環境

Ubuntu 24.04.3 LTS
Docker version v28.5.1
Docker compose version v2.40.3
n8n Community Edition version 1.118.1 (n8nio/n8n) PostgreSQL version 17 (PostgreSQL Docker Community)
Admer version 5.4.1
HeidiSQL version 12.12.0.7122

安裝過程

1.使用Admer 

Adminer 是以PHP撰寫的資料庫管理工具,支援多種資料庫系統,提供簡潔直觀的網頁介面,方便用戶連線和管理PostgreSQL資料庫。
參考Postgre資料,修改原有docker-compose.yml,增加admer服務,n8n啟動時同時啟動。
---
  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080
---
http://主機IP:8080,伺服器填入postgres,再填入env設定的帳號、密碼及資料庫。

adminer-01

adminer-02


2.使用HeidiSQL

HeidiSQL 是Windows平台上免費且開源的資料庫管理工具,支援多種資料庫系統,透過直觀的圖形介面,讓用戶能輕鬆連接並管理 PostgreSQL 資料庫。
修改原有docker-compose.yml,增加postgres的對外port
---
services:
  postgres:
...
    ports:
      - 5432:5432
---

在windows 11執行程式,先填入主機IP,再填入env設定的帳號、密碼及資料庫。
heildiSQL-01


heildiSQL-02


3.docker-compose.yml

sql-fix-01

先將2個方法都先打開測試,後面再來決定方法。
sql-fix-02


2025年11月10日 星期一

n8n install local with docker compose ( PostgreSQL)

n8n install local with docker compose ( PostgreSQL )

前篇n8n平台使用SQLite 存放憑證、歷史執行紀錄和工作流程的database。參考官網也可以使用PostgreSQL使用database,根據官方githubPostgreSQL資料修改為個人環境使用。

主機環境

Ubuntu 24.04.3 LTS Docker version v28.5.1 Docker compose version v2.40.3 n8n Community Edition version 1.116.2 (1.118.1) (n8nio/n8n) PostgreSQL version 17 (PostgreSQL Docker Community)

安裝過程

1.使用者目錄建立n8n-postgres、n8n_data目錄及.env設定檔

將n8n_data目錄掛載到/home/node/.n8n目錄,當container重啟動後資料可以保留。 mkdir n8n-postgres/n8n_data/ -p 新建.env設定檔存放相關參數 (PostgreSQL user and password ),執行docker compose會自動帶入。 vim n8n-postgres/.env --- POSTGRES_USER=changeUser POSTGRES_PASSWORD=changePassword POSTGRES_DB=n8n POSTGRES_NON_ROOT_USER=changeUser POSTGRES_NON_ROOT_PASSWORD=changePassword ---
postgres-env

建立docker-compose.yml cd n8n-postgres vim docker-compose.yml --- services: n8n: image: n8nio/n8n:1.116.2 container_name: n8n ports: - "5678:5678" environment: - GENERIC_TIMEZONE=Asia/Taipei - TZ=Asia/Taipei - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true - N8N_RUNNERS_ENABLED=true - N8N_SECURE_COOKIE=false - DB_TYPE=postgresdb - DB_POSTGRESDB_HOST=postgres - DB_POSTGRESDB_PORT=5432 - DB_POSTGRESDB_DATABASE=${POSTGRES_DB} - DB_POSTGRESDB_USER=${POSTGRES_NON_ROOT_USER} - DB_POSTGRESDB_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD} links: - postgres volumes: - ./n8n_data:/home/node/.n8n depends_on: postgres: condition: service_healthy postgres: image: postgres:17 container_name: postgres environment: - POSTGRES_USER - POSTGRES_PASSWORD - POSTGRES_DB - POSTGRES_NON_ROOT_USER - POSTGRES_NON_ROOT_PASSWORD volumes: - ./db_data:/var/lib/postgresql/data - ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh healthcheck: test: ['CMD-SHELL', 'pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}'] interval: 5s timeout: 5s retries: 10 volumes: n8n_data: db_data: ---
postgres-yml

init-data.sh放在同一目錄,啟動才不會出錯。

2.啟動服務

啟動n8n、PostgreSQL服務 sudo docker compose up -d 啟動過程會依n8n、PostgreSQL啟動 檢查n8n、PostgreSQL服務 sudo docker compose ps -a ls -la
ss -ntlp
postgres-up

3.問題解決

原本使用n8n最新版本1.118.1,出現Connection lost無法連線PostgreSQL的訊息 You have a connection issue or the server is down. n8n should reconnect automatically once the issue is resolved. 查詢網站無法有效解決。後來發現n8n 版本1.116.2可以正常使用,先用此版本進行測試。

20251107 經過測試發現是browser問題,將browser (chrom/firefox)更新到最新版,在頁面操作都可以正常顯示。

後續事項

20251127 

新增環境變數
---
# Reduce saved data
# Save executions ending in errors
- EXECUTIONS_DATA_SAVE_ON_ERROR=all
# Don't save successful executions
- EXECUTIONS_DATA_SAVE_ON_SUCCESS=none
# Don't save node progress for each execution
- EXECUTIONS_DATA_SAVE_ON_PROGRESS=true
# Don't save manually launched executions
- EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS=false

# Enable executions pruning,clear executions_data
- EXECUTIONS_DATA_PRUNE=true
- EXECUTIONS_DATA_MAX_AGE=96
- EXECUTIONS_DATA_PRUNE_MAX_COUNT=5000
---