Відміна й повторення
Можна повернутися до попереднього стану редагування або перейти вперед до пізнішого.
Історія змін зберігає до 2048 змін.
- Відмінити:
Ctrl + Z(Windows/Linux) або⌘ + Z(Mac) - Повторити:
Ctrl + Shift + Z(Windows/Linux) або⌘ + Shift + Z(Mac)
На вкладці ERD панель інструментів має ці самі дві команди у вигляді кнопок Undo і Redo поруч із кнопкою Time Travel. На вкладці словника вона показує кнопки Undo і Redo без кнопки Time Travel, а на жодній іншій вкладці їх немає.
Вони стають активними лише тоді, коли є що відмінити або повторити. Редактор з атрибутом readonly ховає їх і Time Travel, а сполучення клавіш нічого не відміняють і не повторюють.
Відміна й повторення діють на історію змін діаграми лише на вкладці ERD.
Там сполучення клавіш не діють, поки відкрито швидкий пошук, вікно Table Properties, вікно Diff Viewer, попередній перегляд Auto Layout, діалогове вікно Export image, вікно зіставлення стовпців або подорож у часі.
Вони й далі працюють, поки фокус клавіатури перебуває будь-де в оглядачі, зокрема в його дереві, а також поки відкрито панель вибору кольору. Навіть коли текстовий курсор стоїть в одному з їхніх полів, як-от у полі пошуку, полі заміни чи полі Hex, вони відміняють і повторюють зміни діаграми, а не тексту в полі.
На інших вкладках:
- Словник: вони відміняють і повторюють зміни показаного аркуша (
Domains,WordsабоTerms) з власної історії змін цього аркуша, а ніколи не з історії діаграми. На аркушіChecksвони нічого не роблять — див. аркуші словника. - Візуалізація: у режимі
Flowті самі клавіші переходять на крок назад і вперед між тим, що показував режим Flow, як і кнопкиPrevious tableіNext table, зокрема в редакторі з атрибутомreadonly. Там вони ніколи не відміняють і не повторюють змін діаграми — див. попередня й наступна таблиці. У режиміGraphвони нічого не роблять. - Схема SQL, генератор коду й налаштування: вони недоступні. У полях
Before tablesіAfter tablesвкладки схеми SQL ті самі клавіші натомість відміняють і повторюють введений вами в полі текст.
Історія змін утримується в пам’яті протягом поточного сеансу. Вона не зберігається в документі, тож після повторного відкриття діаграми історія змін порожня.

Що записує історія змін
Записується:
- Таблиці й нотатки: додавання, видалення, переміщення й колір; назва, логічна назва й коментар таблиці; текст і розмір нотатки.
- Групи таблиць: додавання, видалення, переміщення, зміна розміру, назва, колір і те, до якої групи належить кожна таблиця, — див. групи таблиць.
- Стовпці: додавання, видалення, зміна порядку, логічна назва, домен, до якого прив’язано кожен стовпець, і кожен параметр стовпця.
- Фізичні назви, які формують словники, і те, чи кожну назву задано вручну, чи її формують словники: одна відміна повертає назву разом із цим станом — див. назви, задані вручну.
- Пункти
Derive Physical Name AgainіDerive Physical Names Again— див. повторне формування фізичних назв. - Зв’язки: додавання, видалення, зміна типу, стовпці, задані у вікні зіставлення стовпців, і кожен вибір у списку
On DeleteабоOn Update— див. ON DELETE і ON UPDATE. Відміна видалення повертає зв’язок разом із його діями ON DELETE і ON UPDATE. - Індекси та їхні стовпці.
- Положення області перегляду, рівень масштабу й перемикачі
View Option. - Скрипти
Before tablesіAfter tablesна вкладці схеми SQL, по одному кроку на кожну зміну, яку ви застосовуєте, виходячи з поля, — див. скрипти перед таблицями й після них. - Імпорт файлу, а також додавання файлу за допомогою пункту
Import and Add.
Не записується:
- СУБД і назва бази даних.
- Мова генератора коду, параметри
Table Name CaseіColumn Name Case. - Тип лапок, незалежно від того, задано його на вкладці схеми SQL чи на вкладці генератора коду.
- Вибір у параметрах
Statements,Header,Write logical names into empty commentsіTablesна вкладці схеми SQL, який належить вікну редактора, — див. панель параметрів. - Усе на вкладці налаштувань, зокрема рядки
Lock. - Перемикання відображення назв з будь-якого місця, де його можна перемкнути, незалежно від того, увімкнено його блокування чи вимкнено, — див. перемикання відображення назв.
- Тема й мова інтерфейсу — див. мова й тема.
- Те, яка таблиця, нотатка чи група малюється поверх інших.
- Оглядач: його відкриття, закриття чи зміна розміру, згортання його дерева, а також текст і параметри пошуку. Проте те, що змінюють кнопки
ReplaceіReplace All, записується, як і прокручування, яке виконує перехід, — див. один жест — один крок. - Масштабування й панорамування на вкладці візуалізації в будь-якому з двох режимів, переміщення вузлів графа чи карток режиму Flow, кнопка
Tidy Up, відображення рядків, фокусування на таблицях і переходи кнопкамиPrevious tableіNext table— див. режим Flow ніколи не змінює документ. - Аркуш, показаний на вкладці словника, а також пошук, виділення, прокручування й ширина стовпців кожного аркуша — див. відкриття вкладки.
Зміну будь-чого з цього переліку не можна відмінити.
Редактор лише для читання не записує нічого. Положення області перегляду, масштаб і перемикачі View Option там усе ще змінюються разом із вкладкою, відображенням назв, базою даних і налаштуваннями коду, але лише на цьому екрані, тож відміняти нічого — див. режим лише для читання у налаштуваннях.
Зміни, зроблені на вкладці словника, можна відмінити, але вони потрапляють в історію змін свого аркуша, а не в цю, тож відміна на вкладці ERD ніколи не скасовує жодної з них, навіть нового значення Data Type домену й змінених ним типів стовпців, — див. аркуші словника.
Зміни, що надходять з іншого редактора, теж не записуються, тож відміна скасовує лише ваші власні зміни. У сеансі спільного редагування кожен редактор відміняє власні зміни, а агент для програмування, що редагує через MCP-сервер, відміняє свої за допомогою інструмента erd_undo.
Відміна імпорту через пункт Import, який замінює всю діаграму, повертає попередню діаграму в тому вигляді, у якому її утримував редактор на момент імпорту, — з кожним блокуванням, увімкненим чи вимкненим, як тоді, і з кожним заблокованим значенням таким, яким воно було тоді.
Якщо в тій діаграмі блокування Viewport було ввімкнено, область перегляду й масштаб повертаються до заблокованої області перегляду, з якою відкривається діаграма, а не туди, де ви були. Якщо ж блокування Viewport у ній було вимкнено, вони повертаються туди, де ви були на момент імпорту. Інші заблоковані налаштування, як-от вкладка, на якій ви перебуваєте, мова генератора коду чи відображення назв, лишаються такими, якими вони є на вашому екрані.
У новій діаграмі спочатку ввімкнено всі блокування. Вимкніть блокування Viewport перед імпортом, щоб зберегти свою область перегляду після такої відміни. Вимкнення цього блокування після імпорту або імпорт JSON-файлу, у якому власне блокування Viewport вимкнене, не змінює того, куди вас поверне відміна.
Відміна або повторення Import також завершує малювання зв’язку — див. створення зв’язків.
Відміна імпорту JSON-файлу також повертає слова, терміни й домени, які мала попередня діаграма. Імпорт схеми SQL, GraphQL, DBML чи AML зберігає словники, тож його відміна й повторення залишають їх такими, якими вони є, разом зі змінами, зробленими відтоді на вкладці словника.
Відміна або повторення на вкладці ERD, які знову прив’язують стовпець до домену або повертають стовпець, прив’язаний до домену, надають стовпцю поточний тип даних домену. Відміна або повторення, які повертають прив’язаному стовпцю інший тип, відв’язують його від домену — див. домени й типи даних.
Один жест — один крок
Усе, що спричиняє один жест, стає одним записом в історії змін.
Вставлення кількох таблиць і нотаток одночасно або дублювання їх за допомогою 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 є одним кроком разом із прокручуванням, яке показує доданий блок, коли воно потрібне.
Вибір терміна зі списку під клітинкою логічної назви є одним кроком: логічна назва, фізична назва, яка з неї формується, а для стовпця також домен терміна з його типом даних — див. доповнення назв термінів.
Вибір домену в клітинці домену стовпця є одним кроком разом із типом даних, який домен надає стовпцю, і тим, що синхронізація типів даних у зв’язках переносить зв’язками. Вибір пункту None, який відв’язує стовпець від домену, теж є одним кроком — див. клітинка домену. Введення в прив’язаний стовпець типу даних, відмінного від типу його домену, відв’язує стовпець на кроці цього введення.
Пункт Derive Physical Name Again або Derive Physical Names Again є одним кроком, хоч скільки назв, прив’язок до доменів і типів даних він змінює. Він не записує кроку лише тоді, коли нічого не змінює. Коли назву, задану вручну, знову віддають словникам, це зміна, навіть якщо назва вже збігається з тією, яку дають словники.
Створення групи таблиць, чи то малюванням, чи то групуванням виділених таблиць за допомогою пункту Group selected tables або клавіш T, потім G, є одним кроком разом з усіма таблицями, які вона охоплює. Видалення групи є одним кроком, а його відміна повертає групу разом із таблицями в ній.
Перетягування групи за смугу заголовка переміщує групу й усі її таблиці за один крок. Таблиці, перетягнуті в групу або з неї, змінюють групу в тому самому кроці, що й їхнє перетягування, якщо ви відпускаєте їх протягом приблизно 200ms після останнього руху, тож одна відміна повертає їх туди, де вони були, і в ті групи, у яких вони були. Після довшої паузи перед відпусканням зміна групи стає окремим кроком, і перша відміна скасовує лише її.
Зміна розміру групи за край або кут записується один раз, у момент відпускання.
Застосування автоматичного розміщення є одним кроком, включно з групами, які воно підганяє під їхні таблиці.
Кнопка Replace All у пошуку й заміні теж є одним кроком, хоч скільки назв таблиць і стовпців, логічних назв, назв індексів і груп таблиць, а також коментарів і нотаток вона змінює, включно з фізичними назвами й прив’язками до доменів, що формуються з логічних назв. Якщо вона нічого не змінює, як-от коли параметр Preserve Case записує кожен збіг у незмінному вигляді, крок не записується.
Одне натискання кнопки Replace є одним кроком, включно з тим, що формується з логічної назви, і прокручуванням до наступного збігу, якщо цей збіг його потребує. Якщо заміна записує свій збіг у незмінному вигляді, записується лише це прокручування або нічого, якщо прокручування немає.
Перехід до збігу прокручує полотно лише тоді, коли збіг іще недостатньо добре видно, — див. куди веде перехід. Це прокручування записується, як і будь-яка інша зміна положення області перегляду, тож після переходів між збігами відміна спершу скасовує ці прокручування, по одному за крок.
Інші переходи, що ведуть на полотно, записують свої прокручування так само: вибір рядка в оглядачі, результату швидкого пошуку, перевірки на аркуші Checks вкладки словника, що вказує на таблицю або стовпець, або кнопки на картці режиму Flow зі значком зовнішнього посилання. Перехід, який залишає область перегляду на місці, нічого не записує. Вибір рядка в списку вікна Diff Viewer теж нічого не записує, бо він переміщує тільки власні сторони перегляду відмінностей, доступні лише для читання.
Безперервне перетягування, панорамування полотна, масштабування, зведення пальців чи зміна кольору буферизується протягом приблизно 200ms і теж стає одним записом.
Перетягування, загальний зсув якого менший за 20px, не записує переміщення. Записується лише зміна групи, яку воно спричиняє, якщо така є.
Введення тексту в клітинку чи нотатку записується окремо для кожної дії введення, а не для жесту загалом: кожен введений символ, кожне вставлення й кожен крок складання символу в IME є окремим кроком.
Клітинка логічної назви записується так само. Коли її редактор закривається з логічною назвою, відмінною від тієї, з якою він відкрився, фізична назва, яку словники формують із неї, є ще одним кроком після введення. Перша відміна скасовує лише цю назву разом із доменом і типом даних, які приніс термін, і залишає введену вами логічну назву. Коли нічого не формується, більше нічого не записується — див. введення логічної назви.
Назва групи таблиць записується один раз, коли її зберігає натискання Enter або вихід із поля, тож назва, яку ви вводите для щойно створеної групи, є кроком, окремим від її створення. Натискання Esc або незмінена назва нічого не записує.
Аркуші словника
Кожен з аркушів Domains, Words і Terms вкладки словника має власну історію змін, окрему від історії діаграми. Кожна зміна, зроблена на вкладці, потрапляє в історію змін того аркуша, у рядки якого вона записує. Як і історія діаграми, кожна з цих історій зберігає до 2048 кроків і утримується в пам’яті протягом сеансу.
- Коли фокус клавіатури на вкладці,
Ctrl + Z(Windows/Linux) або⌘ + Z(Mac) відміняє останню зміну показаного аркуша, аCtrl + Shift + Z(Windows/Linux) або⌘ + Shift + Z(Mac) повторює останню відмінену. - Кнопки
UndoіRedoна панелі інструментів роблять те саме й стають активними лише тоді, коли на показаному аркуші є зміна, яку можна відмінити або повторити. Натискання цих кнопок залишає фокус клавіатури там, де він був, — у сітці або в полі пошуку. На вкладці немає кнопкиTime Travel. - На аркуші
Checks, де нічого не редагується, кнопки лишаються неактивними, і ні вони, ні клавіші нічого не роблять. - Коли відкрито редагування клітинки або текстовий курсор стоїть у полі пошуку вкладки, клавіші натомість відміняють і повторюють введений там текст.
Ці історії ніколи не перетинаються. Відміна на вкладці ERD ніколи не скасовує зміни аркуша, а відміна на аркуші ніколи не скасовує зміни іншого аркуша чи діаграми. Кожен аркуш зберігає свою історію змін, поки ви перемикаєте аркуші або вкладки.
Кожне з наведеного нижче є одним кроком свого аркуша:
- Редагування клітинки, яке записується один раз, у момент запису значення, а не для кожного введеного символу, і лише тоді, коли воно змінює значення, — див. редагування клітинок.
- Вставлення з буфера обміну, включно з рядками, які воно додає, а також очищення виділених клітинок клавішею
DeleteабоBackspace— див. копіювання й вставлення. - Кнопка
Add Row, а також кожне вставлення чи видалення рядків з панелі, з меню сітки або клавішами, хоч скільки рядків воно охоплює, — див. додавання й видалення рядків. - Домен терміна, вибраний з його списку, зокрема пункт
None, — див. домен терміна. - Сортування — див. сортування.
- Один CSV-файл, імпортований кнопкою
Import CSV, хоч скільки рядків він додає чи оновлює. Це крок того аркуша, який заповнює файл і який потім показує вкладка, хоч з якого аркуша ви його імпортували, — див. імпорт.
Запис, який нічого не змінює, як-от повторний імпорт того самого файлу чи сортування аркуша, уже впорядкованого саме так, не додає кроку, як і запис, відхилений зі сповіщенням Nothing saved: …. Коли терміну без значення Physical Name задають назву, фізична назва, яку складають його слова, є частиною кроку цієї зміни.
Нове значення Data Type домену є одним кроком аркуша Domains разом із типами, які воно надає стовпцям, прив’язаним до домену, і стовпцям, до яких від них доходить синхронізація типів даних у зв’язках, — див. домени й типи даних.
Відміна або повторення цього кроку змінює тип стовпців, прив’язаних до домену в цю мить, тож стовпець, який ви відтоді прив’язали до іншого домену або тип якого змінили, зберігає свій тип. Стовпець, який цей крок відв’язав, як-от зовнішній ключ, який синхронізація відв’язала від його власного домену, знову прив’язується лише тоді, коли він досі не прив’язаний і досі має тип, з яким його залишив цей крок.
Редактор з атрибутом readonly ховає кнопки, а клавіші нічого не відміняють і не повторюють.
Зміни від співавторів і агентів для програмування теж не записуються в історію змін аркуша.
Історія змін кожного аркуша очищається, коли словники замінюються: імпортом JSON-файлу через Import, вашим чи співавтора, його відміною чи повторенням, а також завантаженням іншої діаграми в редактор. Імпорт схеми SQL, GraphQL, DBML чи AML через Import зберігає словники, а з ними й історію змін кожного аркуша, зокрема під час його відміни й повторення.
Подорож у часі
Відкривається кнопкою Time Travel на панелі інструментів, поруч із кнопками відміни й повторення на вкладці ERD.
Кнопка нічого не робить, доки в історії змін діаграми не буде записано щонайменше однієї зміни. Редактор лише для читання не показує такої кнопки, а редактор, що переходить у режим лише для читання, закриває подорож у часі, не застосовуючи її.
Подорож у часі відкриває окрему копію діаграми, доступну лише для читання, з тим положенням прокручування, рівнем масштабу й відображенням назв, які показує полотно, незалежно від того, чи ввімкнено блокування Viewport або Name View.
Вона проходить лише історією змін діаграми, тож зміни аркушів словника не входять до її точок.
Перетягніть повзунок або клацніть будь-де на його доріжці, щоб рухатися по всій історії змін і попередньо переглядати кожну її точку. Крайнє ліве положення повзунка — це стан за один крок до першої записаної зміни, а під час відкриття повзунок стоїть на поточному стані.
Попередній перегляд неактивний: він малює мінікарту, але його не можна панорамувати, прокручувати чи редагувати, а справжній документ лишається незмінним, доки ви не застосуєте вибрану точку.
Натисніть Apply, щоб відновити вибрану точку, або Cancel чи Esc, щоб залишити документ без змін.
