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

履歴に記録される内容
記録される項目は次のとおりです。
- テーブルとメモ: 追加、削除、移動、色。テーブルの名前、論理名、コメント。メモの本文とサイズ。
- テーブルグループ: 追加、削除、移動、サイズ変更、名前、色、各テーブルが属するグループ。テーブルグループを参照してください。
- カラム: 追加、削除、並べ替え、論理名、各カラムが紐付いているドメイン、すべてのカラムオプション。
- 辞書が生成する物理名と、各名前が自分で付けた名前か辞書が付けた名前か。1 回の Undo で、名前とその状態が一緒に元に戻ります。自分で付けた名前を参照してください。
Derive Physical Name AgainとDerive Physical Names Again。物理名の再生成を参照してください。- リレーションシップ: 追加、削除、種類の変更、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、Write logical names into empty comments、Tablesの選択。これらはエディタのウィンドウに属します。オプションパネルを参照してください。 Lockの行を含む、設定タブのすべての項目。- 名前の表示の切り替え(どこから切り替えた場合も、ロックのオンとオフにかかわらず)。表示の切り替えを参照してください。
- テーマと表示言語。言語とテーマを参照してください。
- テーブル、メモ、グループのうち、どれがほかのものの前面に描かれるか。
- エクスプローラー: 開閉、サイズの変更、ツリーの折りたたみ、検索語とオプション。ただし、
ReplaceとReplace Allによる変更は記録され、移動で発生するスクロールも記録されます。1 回の操作は 1 ステップを参照してください。 - Visualization タブでの拡大・縮小と表示位置の移動(どちらのモードでも)、グラフのノードや Flow のカードの移動、
Tidy Up、行の表示、テーブルへのフォーカス、Previous tableとNext tableでの移動。Flow はドキュメントを編集しないを参照してください。 - 辞書タブで表示しているシートと、各シートの検索、選択、スクロール、列幅。タブの開き方を参照してください。
これらの変更は Undo できません。
読み取り専用のエディタは何も記録しません。表示位置、拡大・縮小、View Option の切り替えは、タブ、名前の表示、データベース、コード設定とともにそこでも変更できますが、変わるのはその画面だけなので、Undo するものはありません。設定の読み取り専用のエディタを参照してください。
辞書タブで行った編集は Undo できますが、この履歴ではなくそれぞれのシートの履歴に入るため、ERD タブでの Undo で取り消されることはありません。ドメインの新しい Data Type と、それによって変わるカラムの型も同様です。辞書のシートを参照してください。
ほかのエディタから届いた変更も記録されないため、Undo で元に戻せるのは自分の変更だけです。共同編集のセッションでは各エディタがそれぞれ自分の変更を Undo し、MCP サーバーを通じて編集するコーディングエージェントは、自身の変更を erd_undo で Undo します。
ダイアグラム全体を置き換える Import を Undo すると、読み込む前のダイアグラムが、読み込んだ時点でエディタが保持していた状態で戻ります。各ロックのオンとオフも、ロックした各値も、その時点のとおりです。
そのダイアグラムで Viewport がロックされていた場合、表示位置と拡大・縮小のレベルは、直前に見ていた位置ではなく、ロックした表示、つまりダイアグラムを開くと表示される位置に戻ります。Viewport のロックがオフだった場合は、読み込んだ時点で見ていた位置に戻ります。開いているタブ、Code Generator の言語、名前の表示など、ほかのロックした設定は、画面に表示されているまま変わりません。
新しいダイアグラムは、すべてのロックがオンの状態で始まります。このような Undo の後も表示を保つには、読み込む前に Viewport のロックをオフにします。読み込んだ後でロックをオフにしても、Viewport のロックがオフになっている JSON ファイルを読み込んでも、Undo で戻る位置は変わりません。
JSON ファイルの読み込みを Undo すると、以前のダイアグラムにあった単語、用語、ドメインも戻ります。Schema SQL、GraphQL、DBML、AML の読み込みでは辞書はそのまま残るため、その Undo と Redo でも、読み込み後に辞書タブで行った編集を含め、辞書は現在の状態のまま変わりません。
ERD タブでの Undo や Redo によって、カラムが再びドメインに紐付いたり、ドメインに紐付いたカラムが戻ったりした場合、そのカラムにはその時点のドメインのデータ型が与えられます。紐付いているカラムに別の型を戻す Undo や Redo は、そのカラムの紐付けを解除します。ドメインとデータ型を参照してください。
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 ステップで、追加したまとまりを表示範囲に入れるスクロールが必要な場合は、そのスクロールも含まれます。
論理名のセルの下にある一覧から用語を選ぶ操作は 1 ステップです。論理名、そこから生成される物理名、カラムの場合は用語のドメインとそのデータ型がまとめて含まれます。用語名の補完を参照してください。
カラムのドメインのセルでドメインを選ぶ操作は、それがカラムに与えるデータ型と、リレーションシップのデータ型同期がリレーションシップをたどって伝える変更を含めて 1 ステップです。カラムの紐付けを解除する None を選ぶ操作も 1 ステップです。ドメインのセルを参照してください。紐付いているカラムにドメインとは異なるデータ型を入力すると、その入力のステップでカラムの紐付けが解除されます。
Derive Physical Name Again または Derive Physical Names Again は、変更する名前、ドメインの紐付け、データ型の数にかかわらず 1 ステップです。ステップを記録しないのは、何も変更しなかった場合だけです。自分で付けた名前を辞書による生成の対象に戻す操作は、その名前がすでに辞書の付ける名前と同じでも、変更として扱われます。
テーブルグループの作成は、描画した場合も、Group selected tables または T に続けて G で選択しているテーブルをグループにまとめた場合も、それに加わるすべてのテーブルを含めて 1 ステップです。グループの削除は 1 ステップで、Undo するとグループがそのテーブルを含んだ状態で戻ります。
グループをタイトルバーでドラッグすると、グループとそのすべてのテーブルが 1 ステップで移動します。グループの内側や外側にドロップしたテーブルは、最後に動かしてから約 200ms 以内にボタンを離した場合、ドラッグと同じステップでグループが変わるため、1 回の Undo でテーブルが元の位置と元のグループに戻ります。ボタンを離す前にそれより長く止まった場合、グループの変更は独立した 1 ステップになり、最初の Undo ではその変更だけが取り消されます。
辺や角でのグループのサイズ変更は、ボタンを離した時点で 1 回だけ記録されます。
自動レイアウトの適用は、テーブルに合わせて調整されるグループを含めて 1 ステップです。
検索と置換の Replace All も、変更するテーブル名、カラム名、論理名、インデックス名、テーブルグループの名前、コメント、メモの数にかかわらず、論理名から生成される物理名とドメインの紐付けも含めて 1 ステップです。Preserve Case によってすべての一致箇所が元のとおりに書き戻される場合のように、何も変更しなかった場合、ステップは記録されません。
1 回の Replace も 1 ステップで、論理名から生成されるものと、次の一致箇所までのスクロールが必要な場合はそのスクロールも含まれます。一致箇所を元のとおりに書き戻した場合は、そのスクロールだけが記録され、スクロールがなければ何も記録されません。
一致箇所へ移動したときにキャンバスがスクロールするのは、一致箇所がまだ十分に見えていない場合だけです。移動先の表示位置を参照してください。そのスクロールはほかの表示位置の変更と同じように記録されるため、一致箇所を順に移動した後に Undo すると、まずそれらのスクロールが 1 ステップずつ取り消されます。
キャンバス上の対象へ移動するほかの操作、つまりエクスプローラーの行、クイック検索の結果、辞書タブの Checks シートでテーブルやカラムを示すチェック、Flow の外部リンクのカードのボタンを選ぶ操作も、同じようにスクロールを記録します。表示位置を動かさない移動では、何も記録されません。Diff Viewer の一覧の行を選んだ場合も、Diff Viewer 自体の読み取り専用の両側だけが動くため、何も記録されません。
連続したドラッグ、キャンバスの移動、拡大・縮小、ピンチ、色の変更は約 200ms バッファされ、これらも 1 件の履歴になります。
移動量の合計が 20px 未満のドラッグでは、移動は記録されません。そのドラッグでグループが変わった場合は、その変更だけが記録されます。
セルやメモへの入力は、操作単位ではなく入力単位で記録されます。入力した 1 文字、1 回の貼り付け、IME の変換の各段階が、それぞれ 1 ステップになります。
論理名のセルも同じように記録されます。入力欄が開いたときとは異なる論理名で閉じると、辞書がそこから生成する物理名が、入力の後のもう 1 つのステップになります。最初の Undo では、その名前と、用語によって設定されたドメインとデータ型だけが取り消され、入力した論理名は残ります。何も生成されない場合は、それ以上何も記録されません。論理名の入力を参照してください。
テーブルグループの名前は、Enter を押すか入力欄を離れて保存した時点で 1 回だけ記録されるため、作成したばかりのグループに入力した名前は、作成とは別のステップになります。Esc を押した場合や、名前を変えなかった場合は何も記録されません。
辞書のシート
辞書タブの Domains、Words、Terms シートは、ダイアグラムの履歴とは別に、それぞれ独自の履歴を持ちます。タブで行った編集はすべて、その編集が行を書き込むシートの履歴に入ります。ダイアグラムの履歴と同じく、各履歴は最大 2048 ステップを保持し、セッションのあいだメモリ上に置かれます。
- キーボード操作がタブ内にあるとき、
Ctrl + Z(Windows/Linux) または⌘ + Z(Mac) は表示しているシートの最後の編集を Undo し、Ctrl + Shift + Z(Windows/Linux) または⌘ + Shift + Z(Mac) は最後に Undo した編集を Redo します。 - ツールバーの
UndoとRedoも同じ動作をし、表示しているシートに Undo または Redo できる編集があるときにのみ有効になります。押しても、キーボード操作はグリッドや検索フィールドなど、元の場所に残ります。タブにはTime Travelはありません。 - 何も編集しない
Checksでは、ボタンは無効のままで、ボタンもキーも何もしません。 - セルの編集中や、キャレットがタブの検索フィールドにあるときは、キーは代わりにそこでの入力を Undo、Redo します。
履歴が交わることはありません。ERD タブでの Undo がシートの編集を取り消すことはなく、シートの Undo がほかのシートの編集やダイアグラムの編集を取り消すこともありません。シートやタブを切り替えても、各シートは自分の履歴を保持します。
次の操作は、それぞれのシートの 1 ステップになります。
- セルの編集。入力した 1 文字ごとではなく、書き込まれた時点で 1 回だけ記録され、値が変わった場合にのみ記録されます。セルの編集を参照してください。
- 貼り付け(それによって追加される行を含む)と、
DeleteまたはBackspaceによる選択したセルの消去。コピーと貼り付けを参照してください。 Add Rowと、バー、グリッドのメニュー、キーによる行の挿入や削除の各操作(対象の行数にかかわらず)。行の追加と削除を参照してください。- 一覧から選んだ用語のドメイン(
Noneを含む)。用語のドメインを参照してください。 - 並べ替え。並べ替えを参照してください。
Import CSVで読み込んだ 1 つの CSV ファイル。追加または更新する行の数にかかわらず 1 ステップです。どのシートから読み込んだ場合でも、ファイルが書き込むシートのステップになり、タブにはそのシートが表示されます。読み込みを参照してください。
同じファイルを再び読み込んだ場合や、すでにその順序になっているシートを並べ替えた場合のように、何も変えない書き込みはステップを記録せず、Nothing saved: … のトーストで拒否された書き込みも同様です。Physical Name のない用語に名前を付けると、その用語の単語から組み立てた物理名も、その編集のステップに含まれます。
ドメインの新しい Data Type は、ドメインに紐付いたカラムに与える型と、リレーションシップのデータ型同期がそれらのカラムからたどって伝える型を含めて、Domains シートの 1 ステップです。ドメインとデータ型を参照してください。
これを Undo または Redo すると、その時点でドメインに紐付いているカラムの型が変わるため、その後で別のドメインに紐付けたカラムや型を変えたカラムは、その型を保持します。同期によって自身のドメインとの紐付けが解除された外部キーのように、そのステップで紐付けが解除されたカラムが再び紐付くのは、まだ紐付けが解除されたままで、そのステップが残した型を保持している場合だけです。
readonly のエディタではボタンは表示されず、キーを押しても何も Undo、Redo されません。
共同編集者やコーディングエージェントによる変更も、シートの履歴には記録されません。
辞書が置き換えられると、すべてのシートの履歴は空になります。自分または共同編集者による JSON ファイルの Import、その Undo や Redo、エディタへの別のダイアグラムの読み込みがこれにあたります。Schema SQL、GraphQL、DBML、AML の Import では辞書がそのまま残り、それとともに各シートの履歴も、その Undo や Redo を通じて保持されます。
Time Travel
ERD タブで、ツールバーの Undo と Redo の隣にある Time Travel ボタンから開きます。
ダイアグラムの履歴に記録された変更が 1 件もない場合、ボタンは動作しません。読み取り専用のエディタにこのボタンはなく、エディタが読み取り専用になると、Time Travel は適用されずに閉じます。
Time Travel は読み取り専用のダイアグラムのコピーを別に開きます。Viewport や Name View のロックがオンかどうかにかかわらず、コピーはキャンバスに表示中の表示位置、拡大・縮小のレベル、名前の表示で開きます。
Time Travel がたどるのはダイアグラムの履歴だけなので、辞書のシートの編集はたどる時点に含まれません。
スライダーをドラッグするか、トラック上の任意の位置をクリックして、編集履歴全体をたどり、各時点をプレビューします。スライダーの左端は最初に記録された変更の 1 つ前の状態で、開いた時点ではつまみは現在の状態にあります。
プレビューは操作を受け付けません。ミニマップは表示されますが、移動やスクロール、編集はできず、適用するまで実際のドキュメントはそのままです。
Apply を押すと選んだ時点に戻し、Cancel または Esc を押すとドキュメントをそのままにします。
