mci-db-backup

n8n community node: dump a MySQL/MariaDB database to a .sql file (mysqldump-style, pure SQL) and zip it. Replicates the MCI DB backup workflow.

Package Information

Released: this month
Downloads: 0 weekly / 0 monthly
Latest Version: 1.0.0

Documentation

n8n-nodes-mci-db-backup

Node MCI DB Backup cho n8n: làm đúng các bước của workflow n8n_backup_mci_db_email.json
nhưng gói gọn trong một node.

Node sẽ:

  1. Đọc danh sách cột của mọi bảng và view (information_schema), bỏ cột generated.
  2. Chạy SHOW CREATE TABLE cho từng bảng/view.
  3. Dump dữ liệu bảng thật thành INSERT ... VALUES (mặc định 500 dòng/câu lệnh). Cột BLOB/BIT/... xuất dạng 0x....
  4. Ghép file <DB>_<yyyyMMdd_HHmmss>.sql (tạo bảng, dữ liệu, view), giống định dạng cũ.
  5. Nén thành <DB>_<yyyyMMdd_HHmmss>.zip (ZIP thường, không mật khẩu, như workflow gốc) và trả về ở binary property data.

Output JSON: base, fileName, database, tableCount, viewCount, rowCount.

Cài đặt vào n8n (Podman)

Gói đã có sẵn thư mục dist/, không cần build lại.

cd /mnt/new/Documents/mci/backup_db_mci/n8n-nodes-mci-db-backup
npm pack                                   # tạo n8n-nodes-mci-db-backup-1.0.0.tgz

podman cp n8n-nodes-mci-db-backup-1.0.0.tgz n8n:/tmp/
podman exec -u node n8n sh -c 'mkdir -p /home/node/.n8n/nodes && cd /home/node/.n8n/nodes && npm install --omit=dev --omit=peer /tmp/n8n-nodes-mci-db-backup-1.0.0.tgz'
podman restart n8n

Cài vào ~/.n8n (volume) để không mất khi build lại image. Tên container mặc định trong setup_n8n_mysqldump.sh là n8n; đổi nếu khác.

Sau khi mở lại n8n:

  1. Tạo (hoặc dùng sẵn) credential MySQL với host, port, user, password và Database = database cần backup (ví dụ qfzovpphosting_MCI_Database). Node đọc tên DB từ credential này, giống DATABASE() trong workflow gốc. User cần quyền SELECT, SHOW VIEW.
  2. Import workflow_mci_backup_custom_node.json: lịch 02:00 → MCI DB Backup → Gmail (đính kèm data), và nhánh báo lỗi.
  3. Gán credential MySQL cho node MCI DB Backup và credential Gmail cho hai node Gmail.

Có thể cài trực tiếp từ UI (Settings → Community Nodes → Install → n8n-nodes-mci-db-backup) nếu gói đã được publish lên npm.

Tùy chọn của node

  • Binary Property: tên binary property chứa file ZIP (mặc định data).
  • Timezone: múi giờ cho tên file và header SQL (mặc định Asia/Ho_Chi_Minh).
  • Insert Batch Size: số dòng mỗi câu INSERT (mặc định 500).

Khác biệt nhỏ so với workflow gốc

  • Tên bảng/cột có dấu backtick được escape đúng (workflow gốc sẽ sinh SQL lỗi với tên như vậy).
  • SSL: nếu credential MySQL bật SSL thì node bật TLS và kiểm tra chứng chỉ; có thể bỏ kiểm tra bằng tuỳ chọn sslAllowUnauthorizedCerts của credential.

Kiểm thử đã làm

Trên MariaDB 10.11 với bảng có BLOB, BIT, cột generated, view, tên có backtick và 1200 dòng: SQL do node sinh khớp với logic của workflow gốc (trừ dòng escape backtick ở trên), và file SQL restore lại được với checksum các bảng khớp bản gốc. Chưa chạy trên một instance n8n thật; nên thử chạy tay một lần (Execute workflow) trước khi để lịch tự chạy.

Discussion