PowerDesigner 逆向工程導入 MySQL 資料庫結構:完整步驟與 32/64 位 ODBC 坑位避雷
PowerDesigner 是主流資料建模工具,透過 ODBC 逆向導入 MySQL 結構是常見需求。本文記錄標準化操作流程與「32 位 PD 連不上 64 位 ODBC」經典坑位解法。
前置準備
- PowerDesigner 安裝完成(多為 32 位版本)
- MySQL 伺服器網路可達,開放 3306 埠
- 下載 MySQL Connector/ODBC 5.1+(32 位 MSI 版):
https://dev.mysql.com/downloads/connector/odbc/
標準操作流程(6 步)
- 安裝 32 位 ODBC 驅動
- 執行
mysql-connector-odbc-5.1.x-win32.msi 安裝
- ⚠️ 必須安裝 32 位版本,因 PowerDesigner 為 32 位進程,無法載入 64 位驅動
- 建立系統 DSN(系統資料來源)
- 控制台 → 系統管理工具 → ODBC 資料來源 (32 位) → 系統 DSN → 新增
- 選擇 MySQL ODBC 5.1 Driver
- 填寫:
- Data Source Name:
MySQL_PD_Import
- TCP/IP Server:
192.168.x.x
- Port:
3306
- User:
root / 讀取權限帳號
- Password: ********
- Database: 可不選,連線後可切換
- 測試連線 → 確定保存
- PowerDesigner 逆向工程嚮導
- 選單:
File → Reverse Engineer → Database
- DBMS 選擇:
MySQL 5.0(或 5.5/5.6/5.7/8.0 依版本選擇)
- 確定進入選項視窗
- 配置連線來源
- Selection 分頁 → Using a data source
- 點擊右側資料庫圖示 → 選擇 ODBC file data source
- 選擇步驟 2 建立的 DSN(或直接選 System DSN)
- 輸入 User ID / Password → Connect
- 選擇導入物件
- 彈出資料庫/表單選擇視窗
- 勾選目標 Schema 與所需 Tables/Views
- 可按
Select All 全選
- 執行導入
- 確定 → 進度條跑完 → 物件模型顯示於 PD 工作區
- 可進一步產生 PDM、CDM、SQL 腳本等
經典坑位:IM002 驅動程式管理器找不到資料源名稱
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
SQLSTATE=IM002
根因
PowerDesigner (32 位) 嘗試載入 64 位 ODBC 驅動。Windows 將 32 位與 64 位 ODBC 管理器完全隔離:
C:\Windows\System32\odbcad32.exe → 64 位管理器
C:\Windows\SysWOW64\odbcad32.exe → 32 位管理器
解決方案
- 確認 PowerDesigner 位數:
Help → About 看是否 32-bit
- 下載並安裝 32 位 MySQL Connector/ODBC(檔名含
win32 或 x86)
- 用 32 位 ODBC 管理器 建立 DSN:
Win+R → C:\Windows\SysWOW64\odbcad32.exe
- 或在 PD 內直接用「Using a data source」→ ODBC file data source 選擇 .dsn 檔案
進階技巧
- 導入大量表效能優化:取消勾選「Import Procedures/Triggers」等非必需物件
- 增量同步:修改資料庫後,重新逆向導入會嘗試合併變更,建議備份原 PDM 再操作
- 命名規範轉換:PD 內可配置 Naming Conventions,自動將資料庫蛇形命名轉為 Java 駝峰命名
- 版本對應:MySQL 8.0 選擇 DBMS
MySQL 8.0,支援 CTE、Window Function、JSON 等新特性逆向
替代方案
- MySQL Workbench:原生支援,免費、跨平台、逆向/正向工程完整
- DataGrip / Navicat / DBeaver:支援匯出 PDM 兼容格式(XML/XMI)
mysqldump --no-data -d + 解析 SQL 生成模型(自動化腳本)
核心鐵律:32 位應用必須配 32 位 ODBC 驅動,用 32 位 ODBC 管理器建 DSN。這不僅適用於 PowerDesigner,所有 32 位 Windows 應用(舊版 Excel、Access、VB6、Delphi 等)連接資料庫同理。