Undo, Redo
編集の前の状態に戻したり、後の状態に進めたりできます。
履歴は最大 2048 件の変更を保持します。
- Undo:
Ctrl + Z(Windows/Linux) or⌘ + Z(Mac) - Redo:
Ctrl + Shift + Z(Windows/Linux) or⌘ + Shift + Z(Mac)
ツールバーには同じ 2 つのコマンドが Undo と Redo のボタンとして、Time Travel の隣に並んでいます。
これらは Undo または Redo できる変更があるときにのみ有効になります。readonly のエディタでは 3 つとも表示されず、ショートカットも動作しません。
Undo と Redo は ERD タブでのみ動作します。Visualization、Schema SQL、Code Generator、設定の各タブでは使用できません。Schema SQL タブの Before tables と After tables のフィールドでは、同じキーが代わりにフィールドへの入力を Undo、Redo します。
クイック検索、テーブルのプロパティ、Diff Viewer、自動レイアウトのプレビュー、Export image ダイアログ、Map Columns、Time Travel のいずれかが開いている間も、ショートカットは動作しません。
検索と置換またはカラーピッカーが開いている間は、ショートカットは引き続き動作します。キャレットが検索フィールド、置換フィールド、Hex の入力欄など、それらのいずれかのフィールドにあっても、フィールドのテキストではなくダイアグラムを Undo、Redo します。
履歴は現在のセッションのあいだメモリ上に保持されます。ドキュメントには保存されないため、ダイアグラムを開き直すと履歴は空の状態から始まります。

履歴に記録される内容
記録される項目は次のとおりです。
- テーブルとメモ: 追加、削除、移動、色、名前とコメント、メモの本文とサイズ。
- テーブルグループ: 追加、削除、移動、サイズ変更、名前、色、各テーブルが属するグループ。テーブルグループを参照してください。
- カラム: 追加、削除、並べ替え、すべてのカラムオプション。
- リレーションシップ: 追加、削除、種類の変更、Map Columns で設定したカラム、
On DeleteまたはOn Updateでの各項目の選択。ON DELETE と ON UPDATEを参照してください。削除を Undo すると、リレーションシップは ON DELETE と ON UPDATE のアクションも含めて元に戻ります。 - インデックスとそのカラム。
- 表示位置、拡大・縮小のレベル、
View Optionの切り替え。 - Schema SQL タブの
Before tablesとAfter tablesのスクリプト。フィールドを離れて適用した編集ごとに 1 ステップです。前後のスクリプトを参照してください。 - ファイルの読み込みと、
Import and Addでのファイルの追加。
記録されない項目は次のとおりです。
- データベースベンダーとデータベース名。
- Code Generator の言語、
Table Name Case、Column Name Case。 - 括弧の種類。Schema SQL タブで設定した場合も、Code Generator タブで設定した場合も含みます。
- Schema SQL タブの
Statements、Header、Tablesの選択。これらはエディタのウィンドウに属します。オプションパネルを参照してください。 Lockの行を含む、設定タブのすべての項目。- テーマと表示言語。言語とテーマを参照してください。
- テーブル、メモ、グループのうち、どれがほかのものの前面に描かれるか。
- Visualization タブでの拡大・縮小と表示位置の移動(どちらのモードでも)、グラフのノードや Flow のカードの移動、
Tidy Up、行の表示、テーブルへのフォーカス。Flow はドキュメントを編集しないを参照してください。
これらの変更は Undo できません。
ほかのエディタから届いた変更も記録されないため、Undo で元に戻せるのは自分の変更だけです。共同編集のセッションでは各エディタがそれぞれ自分の変更を Undo し、MCP サーバーを通じて編集するコーディングエージェントは、自身の変更を erd_undo で Undo します。
ダイアグラム全体を置き換える Import を Undo すると、読み込む前のダイアグラムが、読み込んだ時点でエディタが保持していた状態で戻ります。各ロックのオンとオフも、ロックした各値も、その時点のとおりです。
そのダイアグラムで Viewport がロックされていた場合、表示位置と拡大・縮小のレベルは、直前に見ていた位置ではなく、ロックした表示、つまりダイアグラムを開くと表示される位置に戻ります。Viewport のロックがオフだった場合は、読み込んだ時点で見ていた位置に戻ります。開いているタブや Code Generator の言語など、ほかのロックした設定は、画面に表示されているまま変わりません。
新しいダイアグラムは、すべてのロックがオンの状態で始まります。このような Undo の後も表示を保つには、読み込む前に Viewport のロックをオフにします。読み込んだ後でロックをオフにしても、Viewport のロックがオフになっている JSON ファイルを読み込んでも、Undo で戻る位置は変わりません。
1 回の操作は 1 ステップ
1 回の操作で発生した変更は、すべてまとめて 1 件の履歴になります。
複数のテーブルとメモをまとめて貼り付けた場合や、Alt + drag で複製した場合も、1 ステップで Undo されます。
Delete または Backspace を 1 回押す操作と、コンテキストメニューの Delete selected または Delete columns は、削除するテーブル、メモ、テーブルグループ、カラムの数にかかわらず 1 ステップです。
選択している複数のカラムの主キーの切り替えは、Alt + K (Windows/Linux) または ⌥ + K (Mac) で行っても、テーブルのコンテキストメニューの Primary Key on selected columns で行っても 1 ステップです。
選択している対象への色の設定と、No color または Remove color で色を外す操作は、選択しているテーブル、メモ、グループの数にかかわらず 1 ステップです。選択しているすべての対象にすでに付いている色を選んでもステップは記録されず、選択している対象のどれにも色が付いていないときの No color も同様です。
Map Columns の Map または Save は、それによって追加される外部キーカラムと変更されるデータ型を含めて 1 ステップです。
Import and Add は、追加したまとまりを表示範囲に入れるスクロールを含めて 1 ステップです。
テーブルグループの作成は、描画した場合も Group selected tables を使った場合も、それに加わるすべてのテーブルを含めて 1 ステップです。グループの削除は 1 ステップで、Undo するとグループがそのテーブルを含んだ状態で戻ります。
グループをタイトルバーでドラッグすると、グループとそのすべてのテーブルが 1 ステップで移動します。グループの内側や外側にドロップしたテーブルは、最後に動かしてから約 200ms 以内にボタンを離した場合、ドラッグと同じステップでグループが変わるため、1 回の Undo でテーブルが元の位置と元のグループに戻ります。ボタンを離す前にそれより長く止まった場合、グループの変更は独立した 1 ステップになり、最初の Undo ではその変更だけが取り消されます。
辺や角でのグループのサイズ変更は、ボタンを離した時点で 1 回だけ記録されます。
自動レイアウトの適用は、テーブルに合わせて調整されるグループを含めて 1 ステップです。
検索と置換の Replace All も、変更するテーブル名、コメント、カラム名、メモの数にかかわらず 1 ステップです。何も変更しなかった場合、ステップは記録されません。
1 回の Replace も 1 ステップで、次の一致箇所までのスクロールが必要な場合は、そのスクロールも含まれます。
パネルの横に完全には表示されていない一致箇所へ移動するとキャンバスがスクロールし、そのスクロールはほかの表示位置の変更と同じように記録されます。一致箇所への移動を参照してください。一致箇所を順に移動した後に Undo すると、まずそれらのスクロールが 1 ステップずつ取り消されます。
連続したドラッグ、キャンバスの移動、拡大・縮小、ピンチ、色の変更は約 200ms バッファされ、これらも 1 件の履歴になります。
移動量の合計が 20px 未満のドラッグでは、移動は記録されません。そのドラッグでグループが変わった場合は、その変更だけが記録されます。
セルやメモへの入力は、操作単位ではなく入力単位で記録されます。入力した 1 文字、1 回の貼り付け、IME の変換の各段階が、それぞれ 1 ステップになります。
テーブルグループの名前は、Enter を押すか入力欄を離れて保存した時点で 1 回だけ記録されるため、作成したばかりのグループに入力した名前は、作成とは別のステップになります。Esc を押した場合や、名前を変えなかった場合は何も記録されません。
Time Travel
ツールバーの Undo と Redo の隣にある Time Travel ボタンから開きます。
セッション内に記録された変更が 1 件もない場合、ボタンは動作しません。
Time Travel は読み取り専用のダイアグラムのコピーを別に開きます。Viewport のロックがオンかどうかにかかわらず、コピーはキャンバスに表示中の表示位置と拡大・縮小のレベルで開きます。
スライダーをドラッグするか、トラック上の任意の位置をクリックして、編集履歴全体をたどり、各時点をプレビューします。スライダーの左端は最初に記録された変更の 1 つ前の状態で、開いた時点ではつまみは現在の状態にあります。
プレビューは操作を受け付けません。ミニマップは表示されますが、移動やスクロール、編集はできず、適用するまで実際のドキュメントはそのままです。
Apply を押すと選んだ時点に戻し、Cancel または Esc を押すとドキュメントをそのままにします。
