MySQL WorkBench 的 ERD 越化越大,但是畫紙並不會自己變大,需要手動調整。
MySQL WorkBench 放大 ERD Diagram 圖紙 和 幾個常用功能
MySQL WorkBench 放大 ERD Diagram 圖紙 和 自動排版方法:
- ERD Diagram 畫面圖紙不夠大,要放大:Model → Diagram Properties and Size
- ERD Diagram 自動排版: Arrange → Autolayout
MySQL WorkBench ERD 畫好後,將資料 Export 出來,再 Import 進去時,INSERT 的 Data 不會進去,需要用下述步驟自己匯入:
- Workbench → Model → Model Notes → Inserts → Import records from an external file. (這個 Model 並不是 Menu 的 Model,用比較完整講法是下述)
- Workbench → 選 ERD 的 Table 圖(Model)(點兩下) → 下面選擇到上面Tab (Inserts) -> 第二列有圖示Export/Import,選擇「Import records from an external file.」(挑選 CSV) → 這樣子就可以把資料匯入
- 若要將匯出的 INSERT 轉換成 CSV 可以使用此程式:
- Export SQL 檔名:database-export-data.sql
- vim workbench-sql-insert-gen-csv.php
- <?php
- // 此檔案是使用 MySQL Workbench export 的 SQL 檔案 (INSERT 語法需要為同一行)
- // 取出 export 的 sql,然後將資料產生成 csv
- // INSERT INTO `dbname`.`table1` (`col1`, `col2`, `col3`) VALUES ('1', '2', '3');
- // INSERT INTO `dbname`.`table1` (`col1`, `col2`, `col3`) VALUES ('2', '3', '4');
- // INSERT INTO `dbname`.`table2` (`col1`, `col2`, `col3`) VALUES ('3', '5', '6');
- $inserts = file('database-export-data.sql');
- foreach ($inserts as $insert) {
- if (strtolower(substr($insert, 0, 6)) != 'insert')
- continue;
- preg_match('/INTO `.*?`\.`(.*?)` \((.*?)\) VALUES \((.*?)\)/', $insert, $m);
- // save to TABLE_NAME.csv
- if (file_exists($m[1] . '.csv')) {
- file_put_contents($m[1] . '.csv', $m[3] . "\n", FILE_APPEND | LOCK_EX);
- } else {
- file_put_contents($m[1] . '.csv', str_replace(['`', ' '], ['', ''], $m[2]) . "\n", FILE_APPEND | LOCK_EX);
- file_put_contents($m[1] . '.csv', $m[3] . "\n", FILE_APPEND | LOCK_EX);
- }
- // print_r($m);
- }
- ?>
- 註:Workbench 在 Import 時,INSERT data 無法載入,所以得要靠上述使用 CSV 匯入各個 Table,若想要每次開啟都可以出現有 Data 的,就需要直接儲存 .mwb (save Model)