Package Information
Available Nodes
Documentation generating…
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ẽ:
- Đọc danh sách cột của mọi bảng và view (
information_schema), bỏ cột generated. - Chạy
SHOW CREATE TABLEcho từng bảng/view. - 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ạng0x.... - Ghép file
<DB>_<yyyyMMdd_HHmmss>.sql(tạo bảng, dữ liệu, view), giống định dạng cũ. - 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 propertydata.
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:
- 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ốngDATABASE()trong workflow gốc. User cần quyềnSELECT,SHOW VIEW. - Import
workflow_mci_backup_custom_node.json: lịch 02:00 → MCI DB Backup → Gmail (đính kèmdata), và nhánh báo lỗi. - 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
sslAllowUnauthorizedCertscủ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.