استعادة الملفات المرفوعة في المواقع المتعددة إلى "الافتراضي" بدلاً من اسم قاعدة البيانات الفعلي

قضيت بعض الوقت في دراسة هذه المشكلة، وأود أن أبلغك بنتائج تحقيقي. باختصار، أكدت كل ما ذكرته بالفعل؛ فعملية الاستعادة تتم على النحو التالي:

migrate_database
reconnect_database
...
extract_uploads

المشكلة تكمن في أنه بعد مهمة الترحيل، لا ينتقل reconnect_database إلى قاعدة البيانات المطلوبة، بل يبدأ العمل على قاعدة البيانات الافتراضية.

لذلك، فإن هذا الكود خاطئ:

def extract_uploads
  ...
  current_db_name = 
  RailsMultisite::ConnectionManagement.current_db # الافتراضي
  optimized_images_exist = File.exist?(File.join(tmp_uploads_path, 'optimized'))

الحل المؤقت هو استخدام @current_db هنا، الذي لا يزال يحتوي على الاسم الصحيح، بدلاً من RailsMultisite::ConnectionManagement.current_db، لكن هذا لا يحل المشكلة الحقيقية المتمثلة في عدم عمل إعادة الاتصال بقاعدة البيانات بشكل صحيح.

أحتاج إلى التعمق أكثر لإيجاد السبب الجذري للمشكلة.