CLI và CI/CD
Model chỉ thực sự là “nguồn sự thật” khi thay đổi trên model tự động chảy xuống database — không phụ thuộc ai đó nhớ export thủ công. Hackolade cung cấp CLI (Command-Line Interface) để làm việc đó: mọi thao tác chính của Studio đều gọi được bằng dòng lệnh, chạy được trong Docker container, ghép thẳng vào pipeline CI/CD (Continuous Integration/Continuous Deployment).
Hackolade CLI làm được gì
Phần tiêu đề “Hackolade CLI làm được gì”Cú pháp chung: hackolade <command> [--arguments] (trên Windows, đường dẫn cài đặt có dấu cách thì gọi qua dạng rút gọn, ví dụ C:\PROGRA~1\Hackolade\hackolade).
| Lệnh | Chức năng |
|---|---|
revEng | Reverse engineering: kết nối database hoặc đọc file script để lấy/suy luận schema thành model |
forwEng | Forward engineering: sinh script/schema (DDL — Data Definition Language, JSON Schema…) từ model |
compMod | So sánh hai model, phát hiện khác biệt, tùy chọn merge |
genDoc | Sinh tài liệu model ra HTML, Markdown hoặc PDF |
forwEngAPI | Sinh đặc tả Swagger/OpenAPI từ model và template |
polyglotConvert / polyglotDerive / polyglotUpdate | Chuyển model vật lý thành polyglot model (model logic dùng chung), derive model target từ polyglot, và đồng bộ các target khi polyglot thay đổi |
forwEngDataDictionary / revEngDataDictionary | Đẩy model lên nền tảng governance (Collibra) và lấy/đồng bộ ngược về |
obfusc | Làm rối (garble) các thuộc tính nhạy cảm: business name, technical name, description, comment — hữu ích khi cần gửi model ra ngoài |
extRefUpdate | Cập nhật các model tham chiếu khi external reference thay đổi |
open | Mở Hackolade Studio với một file model chỉ định |
Yêu cầu license
Phần tiêu đề “Yêu cầu license”Theo tài liệu chính thức, CLI chỉ có trong các edition: Professional, Workgroup, và bản trial 14 ngày. Community và Personal không có CLI. Với máy build/agent CI chạy CLI, cần tính seat license cho máy đó — trao đổi với hãng về mô hình phù hợp (per-seat hay floating, xem bài License và kích hoạt).
Về hạ tầng: Hackolade có hướng dẫn chính thức chạy CLI trong Docker container — đây chính là kịch bản hãng nhắm tới cho CI/CD; file cấu hình đầy đủ đặt trên GitHub của Hackolade. Docs cũng ghi nhận hai kiểu kích hoạt trong pipeline: push-triggered (sự kiện Git kích hoạt) và pull-triggered.
Kịch bản tự động hóa điển hình
Phần tiêu đề “Kịch bản tự động hóa điển hình”Team đặt model trong Git repository (Workgroup edition có tích hợp Git native). Khi data architect sửa model và mở pull request:
- Pipeline chạy
compModso bản mới với nhánh chính — reviewer thấy chính xác schema thay đổi gì. - Merge xong, pipeline chạy
forwEngsinh DDL/script migration từ model. - Script sinh ra được apply lên môi trường dev/staging (bằng tool migration sẵn có của team), chạy test.
genDocsinh lại tài liệu HTML/Markdown, publish lên portal nội bộ — tài liệu không bao giờ lệch model.
flowchart LR
A[Data architect<br>sửa model] --> B[Pull request<br>trên Git]
B --> C[CI: compMod<br>báo cáo khác biệt]
C --> D{Review &<br>merge}
D --> E[CI: forwEng<br>sinh DDL/script]
E --> F[Apply lên<br>dev/staging]
D --> G[CI: genDoc<br>cập nhật tài liệu]
Ví dụ pipeline GitHub Actions
Phần tiêu đề “Ví dụ pipeline GitHub Actions”Ví dụ dưới đây chỉ mang tính minh họa cấu trúc pipeline — tên image, đường dẫn, tham số lệnh và cách cấp license cho runner cần điều chỉnh theo môi trường thực tế của bạn (tham chiếu hướng dẫn Docker + CLI chính thức của Hackolade trên GitHub để có arguments chính xác):
name: schema-forward-engineeringon: push: branches: [main] paths: ['models/**']
jobs: generate-ddl: runs-on: self-hosted # runner đã cài Hackolade CLI + license hợp lệ steps: - uses: actions/checkout@v4
- name: Sinh DDL tu model run: | hackolade forwEng \ --model models/ban-le-khach-hang.json \ --path out/ddl
- name: Sinh tai lieu model run: | hackolade genDoc \ --model models/ban-le-khach-hang.json \ --format markdown \ --doc out/docs
- name: Luu artifact uses: actions/upload-artifact@v4 with: name: schema-output path: out/Bước “apply lên database” nên tách riêng và đi qua cơ chế duyệt (environment approval) — sinh script là việc của Hackolade, còn thực thi script lên môi trường production luôn cần con người xác nhận.
Bài tiếp theo
Phần tiêu đề “Bài tiếp theo”CLI đẩy được model lên cả nền tảng governance — xem bức tranh lớn hơn tại Tích hợp hệ sinh thái dữ liệu.
Nguồn tham khảo
Phần tiêu đề “Nguồn tham khảo”- https://hackolade.com/help/CommandLineInterface.html
- https://hackolade.com/help/Dockercontainer.html
- https://hackolade.com/editions.html
BSD Insight là đối tác triển khai Hackolade tại Việt Nam — liên hệ tư vấn.