التراجع والإعادة
يمكنك العودة إلى حالة تحرير سابقة أو التقدم إلى حالة لاحقة.
يحتفظ السجل بما يصل إلى 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، ترجع المفاتيح نفسها خطوةً وتتقدم خطوةً عبر ما عرضه وضع التدفق، كما يفعل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يُسجَّل، وكذلك التمرير الذي يُحدثه الانتقال، راجع حركة واحدة، خطوة واحدة. - تغيير مستوى التكبير وتحريك العرض في علامة تبويب التصور المرئي في أي من الوضعين، ونقل عقد الرسم البياني أو بطاقات التدفق، و
Tidy Up، وعرض الصفوف، والتركيز على الجداول، والانتقال خطوةً باستخدامPrevious tableوNext table، راجع وضع التدفق لا يعدّل المستند أبدًا. - الورقة المعروضة في علامة تبويب القاموس، وبحث كل ورقة وتحديدها وتمريرها وعرض أعمدتها، راجع فتح علامة التبويب.
لا يمكن التراجع عن تغيير أي من هذه.
لا يسجّل المحرر للقراءة فقط أي شيء على الإطلاق. فموضع العرض والتكبير ومفاتيح 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 في علامة تبويب القاموس يذكر جدولًا أو عمودًا، أو زر البطاقة الخاص بالرابط الخارجي في وضع التدفق. أما الانتقال الذي يترك العرض في مكانه فلا يسجّل شيئًا. ولا يسجّل اختيار صف في قائمة 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، سواء أجريته أنت أو أحد المتعاونين، وبالتراجع عنه أو إعادته، وبتحميل مخطط آخر في المحرر. أما Import لملف مخطط SQL أو GraphQL أو DBML أو AML فيُبقي القواميس، ومعها سجل كل ورقة، خلال التراجع عنه وإعادته أيضًا.
السفر عبر الزمن
يُفتح من الزر Time Travel في شريط الأدوات، بجوار زرّي التراجع والإعادة في علامة تبويب ERD.
لا يفعل الزر شيئًا حتى يوجد في سجل المخطط تغيير واحد مسجَّل على الأقل. ولا يعرض المحرر للقراءة فقط هذا الزر، والمحرر الذي يتحول إلى القراءة فقط يغلق السفر عبر الزمن دون تطبيقه.
يفتح السفر عبر الزمن نسخة منفصلة من المخطط للقراءة فقط، عند موضع التمرير ومستوى التكبير وعرض الأسماء التي تعرضها لوحة الرسم، سواء أكان قفل Viewport أو Name View مفعّلًا أم لا.
وهو يتنقل عبر سجل المخطط وحده، لذا لا تكون تعديلات أوراق القاموس من بين نقاطه.
اسحب شريط التمرير، أو انقر في أي موضع على مساره، للتنقل عبر سجل التعديلات بأكمله ومعاينة كل نقطة. أقصى موضع إلى اليسار في شريط التمرير هو الحالة التي تسبق أول تغيير مسجَّل بخطوة واحدة، وعند الفتح يكون مقبضه على الحالة الحالية.
المعاينة غير تفاعلية: فهي ترسم خريطة مصغرة، لكن لا يمكنك تحريك عرضها أو تمريرها أو تعديلها، ويبقى المستند الحقيقي دون مساس حتى تطبّق.
اضغط Apply لاستعادة النقطة المختارة، أو Cancel أو Esc لترك المستند دون تغيير.
