復原、重做
可以回到先前的編輯狀態,也可以前進到之後的編輯狀態。
歷程記錄最多保留 2048 筆變更。
- 復原:
Ctrl + Z(Windows/Linux) 或⌘ + Z(Mac) - 重做:
Ctrl + Shift + Z(Windows/Linux) 或⌘ + Shift + Z(Mac)
工具列在 Time Travel 旁邊以 Undo 和 Redo 按鈕提供相同的兩個命令。
只有在有內容可以復原或重做時,這兩個按鈕才會亮起。readonly 編輯器會隱藏這三個按鈕,快速鍵也不會有任何作用。
復原和重做只在 ERD 索引標籤中有效。在「視覺化」、「結構描述 SQL」、「程式碼產生器」和「設定」索引標籤中則無法使用。在「結構描述 SQL」索引標籤的 Before tables 和 After tables 輸入框中,相同的按鍵會改為復原和重做在該輸入框中輸入的內容。
快速搜尋、Table Properties、Diff Viewer、Auto Layout 預覽、Export image 對話方塊、「對應欄位」或時光旅行開啟期間,快速鍵也會停用。
鍵盤焦點位於物件總管中的任何位置(包括其樹狀結構)時,以及顏色選擇器開啟時,快速鍵仍可使用。即使插入點位於它們的某個輸入框中,例如「尋找」、「取代」或 Hex 輸入框,快速鍵也會復原和重做圖表,而不是輸入框中的文字。
歷程記錄存放在目前工作階段的記憶體中。它不會儲存在文件中,因此重新開啟的圖表會從空的歷程記錄開始。

歷程記錄涵蓋的內容
會記錄的內容:
- 資料表和備忘錄:新增、移除、移動、顏色、名稱與註解、備忘錄的文字與大小。
- 資料表群組:新增、移除、移動、調整大小、名稱、顏色,以及每個資料表所屬的群組,請參閱資料表群組。
- 欄位:新增、移除、重新排序,以及每個欄位選項。
- 關聯:新增、移除、類型變更、在「對應欄位」中設定的欄位,以及在
On Delete或On Update中所做的每個選擇,請參閱 ON DELETE 與 ON UPDATE。復原移除操作時,關聯會連同其 ON DELETE 和 ON UPDATE 動作一起恢復。 - 索引及其欄位。
- 檢視位置、縮放比例,以及
View Option的切換按鈕。 - 「結構描述 SQL」索引標籤的
Before tables和After tables指令碼,每次藉由離開輸入框而套用的編輯各算作一個步驟,請參閱前置與後置指令碼。 - 匯入檔案,以及使用
Import and Add加入檔案。
不會記錄的內容:
- 資料庫廠商和資料庫名稱。
- 程式碼產生器的語言、
Table Name Case和Column Name Case。 - 引號類型,無論是在「結構描述 SQL」索引標籤還是「程式碼產生器」索引標籤中設定。
- 「結構描述 SQL」索引標籤中
Statements、Header和Tables的選擇,這些選擇屬於編輯器視窗,請參閱選項面板。 - 「設定」索引標籤中的所有項目,包括
Lock的各列。 - 佈景主題和顯示語言,請參閱語言與佈景主題。
- 哪個資料表、備忘錄或群組繪製在其他項目的前面。
- 物件總管:開啟、關閉物件總管或調整其大小、摺疊其樹狀結構,以及搜尋文字與搜尋選項。不過,
Replace和Replace All所做的變更會被記錄,前往操作造成的捲動也會被記錄,請參閱一次操作,一個步驟。 - 「視覺化」索引標籤中兩種模式下的縮放和平移、移動關係圖的節點或流程模式的卡片、
Tidy Up、列顯示,以及聚焦資料表,請參閱流程模式從不編輯文件。
這些項目的任何變更都無法復原。
來自其他編輯器的變更也不會被記錄,因此復原只會還原您自己的變更。在協作工作階段中,每個編輯器會復原各自的變更,而透過 MCP 伺服器進行編輯的程式碼代理程式則會使用 erd_undo 復原自己的變更。
復原取代整個圖表的 Import 時,會依匯入當時編輯器所持有的樣子恢復先前的圖表,每個鎖定的開啟或關閉狀態,以及每個鎖定的值,也都會恢復為當時的狀態。
若該圖表鎖定了 Viewport,檢視和縮放比例會回到鎖定的檢視,也就是圖表開啟時的位置,而不是您原本所在的位置。若該圖表的 Viewport 未鎖定,檢視和縮放比例則會回到您匯入時所在的位置。其他鎖定的設定,例如您目前所在的索引標籤或程式碼產生器的語言,則會維持您畫面上的樣子。
新的圖表一開始所有鎖定都是開啟的。在匯入前解除鎖定 Viewport,即可在這類復原後保留您的檢視。匯入後才解除鎖定,或匯入自身 Viewport 鎖定為關閉狀態的 JSON 檔案,都不會改變復原後所回到的位置。
一次操作,一個步驟
單一操作所分派的所有內容都會成為一筆歷程記錄。
一次貼上多個資料表和備忘錄,或使用 Alt + drag 建立其副本,都會以一個步驟復原。
按一次 Delete 或 Backspace,或是右鍵選單中的 Delete selected 或 Delete columns,無論移除了多少個資料表、備忘錄、資料表群組或欄位,都算作一個步驟。
在多個已選取的欄位上切換主鍵算作一個步驟,無論是使用 Alt + K (Windows/Linux) 或 ⌥ + K (Mac),還是使用資料表右鍵選單中的 Primary Key on selected columns。
設定選取範圍的顏色,或使用 No color 或 Remove color 清除顏色,無論選取了多少個資料表、備忘錄和群組,都算作一個步驟。選擇所有已選取項目都已具有的顏色不會記錄任何步驟,在已選取項目都沒有顏色時使用 No color 也是如此。
「對應欄位」中的 Map 或 Save 連同其加入的外鍵欄位和變更的資料類型,算作一個步驟。
Import and Add 算作一個步驟,需要捲動才能讓加入的區塊進入可見範圍時,該捲動也包含在同一個步驟中。
建立資料表群組(無論是繪製群組,還是使用 Group selected tables 或先按 T 再按 G 將所選資料表組成群組)連同其納入的每個資料表,算作一個步驟。移除群組算作一個步驟,復原後群組會連同其中的資料表一起恢復。
拖曳群組的標題列會在一個步驟中移動群組及其所有資料表。若在最後一次移動後約 200ms 內放開,被拖入或拖出群組的資料表會在與其拖曳相同的步驟中變更所屬群組,因此復原一次就會讓它們回到原本的位置和原本所屬的群組。若放開前停頓較久,群組的變更會成為獨立的步驟,第一次復原只會撤回該變更。
以邊緣或角落調整群組大小時,會在放開時記錄一次。
套用自動版面配置算作一個步驟,它讓群組貼合各自資料表的調整也包含在內。
尋找與取代中的 Replace All 也算作一個步驟,無論它變更了多少個資料表名稱、欄位名稱、索引名稱、資料表群組名稱、註解和備忘錄。若沒有變更任何內容,例如 Preserve Case 將每個相符項目原樣寫回時,則不會記錄任何步驟。
單次 Replace 算作一個步驟,下一個相符項目需要捲動時,捲動到該項目的動作也包含在內。若它將相符項目原樣寫回,則只會記錄該次捲動;沒有捲動時,則不會記錄任何內容。
前往相符項目時,只有在該相符項目尚未清楚顯示時才會捲動畫布,請參閱跳至目標時的落點。該捲動會像任何其他檢視位置變更一樣被記錄,因此在相符項目之間移動後,復原會先撤回這些捲動,每個步驟撤回一個。
其他落在畫布上的前往操作也以相同方式記錄其捲動:選擇物件總管中的列、快速搜尋的結果,或流程模式中的外部連結卡片按鈕。讓檢視維持原位的前往操作不會記錄任何內容。選擇 Diff Viewer 清單中的列也不會記錄任何內容,因為這只會移動差異檢視器本身的唯讀兩側。
連續的拖曳、畫布平移、縮放、雙指縮放或顏色變更會緩衝約 200ms,同樣會成為一筆歷程記錄。
總移動距離小於 20px 的拖曳不會記錄任何移動。只會記錄它所造成的群組變更(如果有的話)。
在儲存格或備忘錄中輸入時,會以每次輸入為單位記錄,而不是以操作為單位:每個輸入的字元、每次貼上,以及輸入法組字的每個步驟,都各自是一個步驟。
資料表群組的名稱會在按 Enter 或離開輸入框而儲存時記錄一次,因此在剛建立的群組中輸入的名稱,與建立群組是分開的步驟。按 Esc 或名稱維持不變時,都不會記錄任何內容。
時光旅行
從工具列中位於復原和重做旁邊的 Time Travel 按鈕開啟。
在工作階段至少有一筆已記錄的變更之前,此按鈕不會有任何作用。
無論 Viewport 鎖定是否開啟,時光旅行都會以畫布目前顯示的捲動位置和縮放比例,開啟圖表的一份獨立唯讀副本。
拖曳滑桿,或按一下其滑軌上的任意位置,即可在整個編輯歷程記錄中移動並預覽每個時間點。滑桿最左端的位置是第一筆已記錄變更之前一個步驟的狀態,開啟時滑塊會位於目前的狀態。
預覽無法互動:它會繪製小地圖,但無法平移、捲動或編輯預覽,而且在套用之前,實際的文件都會維持原樣。
按 Apply 即可恢復所選的時間點,或按 Cancel 或 Esc 讓文件維持不變。
