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)