على أحدث إصدار تجريبي من Discourse، مع تثبيت Docker ودعم المواقع المتعددة.
أحاول استعادة نسخة احتياطية من قاعدة البيانات الأصلية REDACTED إلى قاعدة البيانات الحالية db8015. تنتهي الملفات المرفقة في default، سواء على نظام الملفات أو في قاعدة البيانات.
تحدث هذه المشكلة سواء تم تشغيل الاستعادة من الواجهة الرسومية (GUI) أو عبر سطر الأوامر باستخدام الأمر RAILS_DB=db8015 RAILS_ENV=production script/discourse restore.
[STARTED]
'DHSupport' بدأت عملية الاستعادة!
يتم تحديد حالة الاستعادة على أنها جارية...
التأكد من وجود المسار /var/www/discourse/tmp/restores/db8015/2019-10-11-104940...
نسخ الأرشيف إلى مجلد tmp...
فك ضغط الأرشيف، قد يستغرق هذا بعض الوقت...
لا يوجد ملف بيانات وصفية لاستخراجه.
التحقق من صحة البيانات الوصفية...
الإصدار الحالي: 20191007140446
الإصدار المستعاد: 20190908234054
استخراج ملف الطرح...
إنشاء الدوال المفقودة في مخطط discourse_functions
لا يمكن الاستعادة في مخطط مختلف، سيتم الاستعادة في الموقع
تمكين وضع القراءة فقط...
إيقاف مؤقت لـ sidekiq...
[حذفت الكثير من الأمور غير ذات الصلة]
مسح ذاكرة التخزين المؤقت للقوالب
استخراج الملفات المرفقة...
إعادة تعيين خرائط الملفات المرفقة...
إعادة تعيين خرائط 'uploads/REDACTED' إلى 'uploads/default'
تحسين أيقونات الموقع...
سيتم إعادة معالجة المنشورات بواسطة مهمة خلفية في sidekiq. ستظهر الصور المفقودة حتى اكتمال هذه العملية.
يمكنك تسريع العملية بتشغيل الأمر يدوياً: "rake posts:rebake_uncooked_posts"
تنفيذ after_restore_hook...
تنظيف الملفات...
إزالة الدالة من مخطط discourse_functions
حذف المجلد المؤقت '/var/www/discourse/tmp/restores/db8015/2019-10-11-104940'...
إعادة تشغيل sidekiq...
تحديد حالة الاستعادة على أنها مكتملة...
الحل المؤقت هو استخدام @current_db هنا، الذي لا يزال يحتوي على الاسم الصحيح، بدلاً من RailsMultisite::ConnectionManagement.current_db، لكن هذا لا يحل المشكلة الحقيقية المتمثلة في عدم عمل إعادة الاتصال بقاعدة البيانات بشكل صحيح.
أحتاج إلى التعمق أكثر لإيجاد السبب الجذري للمشكلة.
أنت محق. قمت بإزالة Rake::Task["db:migrate"].invoke من restorer.rb وحصلت على قاعدة البيانات الصحيحة طوال العملية.
أنت متقدم علي بخطوة، وخطةي الآن هي الدخول إلى مهمة الهجرة (migrate task) ومعرفة الخطوة التي تعطل العملية.
شكرًا لك على الإشارة إلى _dump، سأذهب مباشرة إليها لأرى ما يحدث بالداخل.
تم دمج الإصلاح، شكرًا لك على اكتشاف هذه المشكلة. تم إضافة أمر التصدير هذا بسبب وجود مشكلة في عمليات ترحيل المواقع المتعددة. أعتقد أنه لا ينبغي أن يهم قاعدة البيانات التي نستخدمها لتصدير الهيكل، لأن جميع المواقع المتعددة يجب أن يكون لها نفس الهيكل.