在模型、資料庫和 SQL 檔案之間同步資料。這三種類型可以是目標(目的地)、來源或兩者。您也可以選取或取消選取個別物件,並在同步期間修改其方向。例如,您可以在同一個同步程序中,將表格從模型同步到資料庫、將其他表格從資料庫同步到模型,並略過一些表格。
請注意,隨著時間的推移,會引入向後不相容的 MySQL 語法變更,因此,務必根據您的需求設定 預設目標 MySQL 版本 建模偏好設定。例如,從 MySQL 5.7 目標匯出的結果,在針對 MySQL 5.6 執行時可能會產生無效的語法。另請參閱第 3.2.4 節,〈建模偏好設定〉。
若要開始,請從 同步模型 以開啟預設為模型的相同精靈。必須選取模型或 EER 圖表,這些同步選項才會出現在 導覽選單下。
導覽選單中選取 ,如下圖所示。或者,選取由於 MySQL 資料庫對應於資料目錄中的目錄,因此您必須考慮資料庫、表格和觸發器名稱的大小寫區分,這些名稱遵循作業系統的基礎檔案系統的大小寫區分規則。將模型與大小寫不同的物件同步,可能會導致 MySQL Workbench 為該物件產生 DROP
陳述式,然後以小寫重新建立它。如需更多資訊,請參閱識別碼大小寫區分
因應措施包括使用一致的慣例,其中最可移植的程式碼使用小寫的資料庫和表格名稱。或者,暫時的因應措施是從產生的查詢中刪除 DROP SCHEMA IF EXISTS
行。
MySQL Workbench 可讓您控制要同步的物件,以及每個物件的同步方向。同步選項包括
指定要同步的所有或特定表格和物件。
同步模型和即時資料庫,或僅更新其中一個(單向或雙向)。
可選擇從 SQL 指令碼檔案更新或更新至 SQL 指令碼檔案。
您可以產生 ALTER 指令碼檔案 以稍後執行適當的更新,而不是執行同步。
透過選擇每個個別物件的方向或設定要忽略的特定物件,微調同步的執行方式。
從 同步模型 精靈,以及更彈性的 與任何來源同步 精靈。以下描述適用於兩者,除非另有說明。
選單中有兩個類似的資料庫同步精靈。較簡單的同步模型(與資料庫)
若要啟動精靈,請開啟模型,然後從主選單中選取 選取要套用的變更 步驟,如下圖所示。
、 。依照步驟順序操作,直到您到達在先前的範例中,即時資料庫和模型都有 movies
和 shows
表格。在 MySQL Workbench 中,在模型中建立了額外的表格 educational
,但它在即時資料庫中沒有對應的表格。此外,friends
存在於即時資料庫中,但它不在模型中。根據預設,動作會將資料庫與模型同步,因此在本範例中,educational
表格將會新增至來源,而 friends
表格將會從來源中移除。
如 GUI 中所述,按兩下箭頭會在
、 和 動作之間切換。您也可以選取一個列,然後按一下三個動作按鈕之一。另請注意,按一下列會顯示相關聯的 SQL 陳述式,如上圖所示。下圖顯示如何變更同步方向的範例。
在此案例中,同步方向已變更,因此不是預設動作將 friends
從即時資料庫中刪除,而是將其併入 MySQL Workbench 模型中。與之前一樣,educational
表格將會新增至即時 (來源) 資料庫。
可用的三個動作如下
按一下
會提供其他對應選項,如下圖所示。按一下
會顯示 SQL 陳述式,以執行已設定的模型和即時資料庫(來源)同步。下圖顯示預覽範例。您現在可以將 SQL 陳述式儲存至檔案或剪貼簿,或執行 SQL 陳述式。如果您選擇在 MySQL Workbench 中執行變更,則您可以選擇略過「資料庫變更」,以便僅變更您的模型。
與任何來源同步
若要啟動精靈,請開啟模型,然後從主選單中選取 同步模型精靈類似,但具有建立 SQL 指令碼檔案、使用 SQL 指令碼檔案或兩者的其他選項。下圖顯示 選取來源 設定。
,然後選取 。步驟與請注意如何變更來源和目的地類型。後續步驟取決於這些來源和目的地類型,而 同步模型 描述此精靈的基本功能。