التراجع والإعادة
يمكنك العودة إلى حالة تحرير سابقة أو التقدم إلى حالة لاحقة.
يحتفظ السجل بما يصل إلى 2048 من التغييرات.
- التراجع:
Ctrl + Z(Windows/Linux) أو⌘ + Z(Mac) - الإعادة:
Ctrl + Shift + Z(Windows/Linux) أو⌘ + Shift + Z(Mac)
يحمل شريط الأدوات الأمرين نفسيهما في صورة الزرين Undo وRedo، بجوار Time Travel.
ولا يُبرَز الزران إلا حين يوجد ما يمكن التراجع عنه أو إعادته. ويُخفي المحرر بالسمة readonly الأزرار الثلاثة جميعها، ولا تفعل الاختصارات شيئًا.
لا يعمل التراجع والإعادة إلا في علامة تبويب ERD. ولا يُتاحان في علامات تبويب التصور المرئي ومخطط SQL ومنشئ التعليمات البرمجية والإعدادات. أما في الحقلين Before tables وAfter tables في علامة تبويب مخطط SQL، فتتراجع المفاتيح نفسها عن كتابتك في الحقل وتعيدها بدلًا من ذلك.
ويتوقف عمل الاختصارات أيضًا أثناء فتح البحث السريع أو Table Properties أو Diff Viewer أو معاينة Auto Layout أو مربع الحوار Export image أو تعيين الأعمدة أو السفر عبر الزمن.
وتظل تعمل ما دام تركيز لوحة المفاتيح في أي موضع من المستكشف، بما في ذلك شجرته، وما دام منتقي الألوان مفتوحًا. وحتى حين يكون مؤشر الكتابة في أحد حقولهما، مثل حقل البحث أو حقل الاستبدال أو الحقل Hex، فإنها تُجري التراجع والإعادة على المخطط لا على النص الموجود في الحقل.
يبقى السجل في الذاكرة خلال الجلسة الحالية. ولا يُحفظ في المستند، لذا يبدأ المخطط المُعاد فتحه بسجل فارغ.

ما يُسجَّل في السجل
ما يُسجَّل:
- الجداول والملاحظات: الإضافة والإزالة والنقل واللون والاسم والتعليق، ونص الملاحظة وحجمها.
- مجموعات الجداول: الإضافة والإزالة والنقل وتغيير الحجم والاسم واللون، والمجموعة التي ينتمي إليها كل جدول، راجع مجموعات الجداول.
- الأعمدة: الإضافة والإزالة وإعادة الترتيب، وكل خيار من خيارات العمود.
- العلاقات: الإضافة والإزالة وتغيير النوع، والأعمدة التي تُعيَّن في تعيين الأعمدة، وكل اختيار من
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وTablesفي علامة تبويب مخطط SQL، وهي تخص نافذة المحرر، راجع لوحة الخيارات. - كل ما في علامة تبويب الإعدادات، بما في ذلك صفوف
Lock. - النسق ولغة العرض، راجع اللغة والنسق.
- أيُّ جدول أو ملاحظة أو مجموعة يُرسم أمام غيره.
- المستكشف: فتحه أو إغلاقه أو تغيير حجمه، وطيّ شجرته، ونص البحث وخياراته. غير أن ما يغيّره
ReplaceوReplace Allيُسجَّل، وكذلك التمرير الذي يُحدثه الانتقال، راجع حركة واحدة، خطوة واحدة. - تغيير مستوى التكبير وتحريك العرض في علامة تبويب التصور المرئي في أي من الوضعين، ونقل عقد الرسم البياني أو بطاقات التدفق، و
Tidy Up، وعرض الصفوف، والتركيز على الجداول، راجع وضع التدفق لا يعدّل المستند أبدًا.
لا يمكن التراجع عن تغيير أي من هذه.
ولا تُسجَّل كذلك التغييرات الواردة من محرر آخر، لذا لا يعكس التراجع إلا تغييراتك. وفي جلسة تعاونية يتراجع كل محرر عن تغييراته، ويتراجع وكيل البرمجة الذي يحرّر عبر خادم MCP عن تغييراته باستخدام erd_undo.
يعيد التراجع عن Import، الذي يستبدل المخطط بأكمله، المخططَ السابق كما كان في المحرر عند الاستيراد، فيعود كل قفل مفعّلًا أو معطّلًا كما كان، وكل قيمة مقفلة كما كانت حينها.
إن كان Viewport مقفلًا في ذلك المخطط، يعود العرض ومستوى التكبير إلى العرض المقفل، حيث يُفتح المخطط، لا إلى حيث كنت. وإن كان Viewport فيه غير مقفل، يعودان إلى حيث كنت عند الاستيراد. أما الإعدادات المقفلة الأخرى، مثل علامة التبويب التي أنت فيها أو لغة منشئ التعليمات البرمجية، فتبقى كما هي على شاشتك.
يبدأ المخطط الجديد وكل الأقفال مفعّلة. ألغِ قفل Viewport قبل أن تستورد لتحتفظ بعرضك عبر تراجع كهذا. أما إلغاء قفله بعد ذلك، أو استيراد ملف JSON قفل Viewport فيه معطّل، فلا يغيّر المكان الذي يأخذك إليه التراجع.
حركة واحدة، خطوة واحدة
كل ما ترسله حركة واحدة يصبح إدخالًا واحدًا في السجل.
فلصق عدة جداول وملاحظات دفعة واحدة، أو تكرارها باستخدام 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 إجمالًا لا يسجّل أي نقل. ولا يُسجَّل منه إلا تغيير المجموعة الذي يُحدثه، إن وُجد.
أما الكتابة في خلية أو ملاحظة فتُسجَّل لكل عملية إدخال لا لكل حركة: فكل حرف يُكتب وكل لصق وكل خطوة من خطوات التركيب في أسلوب الإدخال (IME) خطوة مستقلة.
ويُسجَّل اسم مجموعة الجداول مرة واحدة، حين يحفظه Enter أو مغادرة الحقل، لذا يكون الاسم الذي تكتبه لمجموعة أنشأتها للتو خطوة منفصلة عن إنشائها. ولا يسجّل Esc، ولا الاسم الذي يُترك دون تغيير، شيئًا.
السفر عبر الزمن
يُفتح من الزر Time Travel في شريط الأدوات، بجوار زرّي التراجع والإعادة.
لا يفعل الزر شيئًا حتى يوجد في الجلسة تغيير واحد مسجَّل على الأقل.
يفتح السفر عبر الزمن نسخة منفصلة من المخطط للقراءة فقط، عند موضع التمرير ومستوى التكبير اللذين تعرضهما لوحة الرسم، سواء أكان قفل Viewport مفعّلًا أم لا.
اسحب شريط التمرير، أو انقر في أي موضع على مساره، للتنقل عبر سجل التعديلات بأكمله ومعاينة كل نقطة. أقصى موضع إلى اليسار في شريط التمرير هو الحالة التي تسبق أول تغيير مسجَّل بخطوة واحدة، وعند الفتح يكون مقبضه على الحالة الحالية.
المعاينة غير تفاعلية: فهي ترسم خريطة مصغرة، لكن لا يمكنك تحريك عرضها أو تمريرها أو تعديلها، ويبقى المستند الحقيقي دون مساس حتى تطبّق.
اضغط Apply لاستعادة النقطة المختارة، أو Cancel أو Esc لترك المستند دون تغيير.
