أداة تنظيف قواعد البيانات؟

هل لدى Discourse أداة لتنظيف قاعدة البيانات؟

ستقوم هذه الأداة بإزالة أي بيانات تكوين إضافية من قاعدة البيانات. ستقوم الأداة بإزالة أي أعمدة مضافة، أو صفوف تكوين، أو جداول من قاعدة البيانات غير موجودة في التثبيت الافتراضي لـ Discourse. ستترك الأداة كل المحتوى وإعدادات الموقع وشأنها. سيكون التركيز الأساسي هو إزالة جميع مكونات الإضافات والمكونات من قاعدة البيانات.

أفضل حل يمكنني التفكير فيه هو إعداد نسخة جديدة من نسخة احتياطية :slight_smile:

هذا هو أنظف ما ستحصل عليه مع الاحتفاظ ببيانات منتداك دون الكثير من الجهد اليدوي.

ومع ذلك ، أعتقد أن النسخ الاحتياطية ستشمل جميع الجداول التي كانت موجودة في النسخة التي قمت بعمل نسخة احتياطية منها وقد تشمل أي جداول تم إنشاؤها بواسطة المكونات الإضافية ، حتى لو لم تقم بتثبيت المكون الإضافي على النسخة الجديدة.

إذا كنت ترغب في القيام بذلك بنفسك ، يمكنك استخدام مهام rake لحذف قاعدة بيانات وإنشاء قاعدة بيانات جديدة وتشغيل عمليات الترحيل كلها ، ولكن هذا سيؤدي إلى حذف جميع بياناتك.

هذا هو السبب في أن “تثبيت بيئة جديدة واستعادة نسخة احتياطية” ليس هو الحل الأفضل. لا يزال لديك بقايا من المكونات والإضافات القديمة عالقة في قاعدة البيانات.

يجب أن تكون هناك أداة أخيرة تقوم بإزالة أي تغييرات في المكونات والإضافات على قاعدة البيانات وتترك البيانات وإعدادات الموقع كما هي. يمكن تشغيل هذه الأداة قبل الانتقال إلى حل التثبيت الجديد.

أعتقد أن هذا سيكون صعب البناء:

  1. بعض الترحيلات لا يمكن التراجع عنها
  2. يتم تخزين العديد من الترحيلات داخل الإضافات التي لن تكون موجودة إذا لم يتم تثبيتها، لذلك لا يوجد شيء للتراجع عنه.

لكن حاول بناءه وانظر إذا كان يمكنك التغلب على هذه المشكلات.

إعجاب واحد (1)

إذًا، ليس لدينا أي أدوات على الإطلاق لنقل المحتوى البشري فقط، بما في ذلك الفئات والعلامات؟

أنت تستخدم مصطلح “عمليات الترحيل”. ماذا تقصد بهذا المصطلح؟

أنا أستخدم المصطلح للإشارة إلى “ترحيل” بيانات المستخدم والمحتوى إلى نظام. لا ينبغي أن يغير هذا أبدًا بنية قاعدة البيانات الافتراضية.

الشيء الوحيد الذي قد يغير بنية قاعدة البيانات هو المكون الإضافي. ما لم يسمح Discourse بطرق أخرى للأشخاص لتغيير بنية قاعدة البيانات.

إعجاب واحد (1)

إنها موجودة في مجلد /db/migrations الخاص بـ Discourse وكل إضافة (تستخدمها)

إعجاب واحد (1)