ترقية 2.6.0b2 بطيئة جدًا

كان لدي موقع كبير فشل مرارًا وتكرارًا في عملية التمهيد. كان التثبيت يتكون من حاويتين، لذا استمرت الحاوية القديمة في العمل أثناء هجرة عملية التمهيد. وقد تمكنت في النهاية من حل المشكلة بتفعيل SKIP_POST_DEPLOYMENT_MIGRATIONS=1 لعملية التمهيد، ثم تشغيل عمليات الهجرة بعد بدء تشغيل الحاوية الجديدة. ومع وجود SKIP_POST_DEPLOYMENT_MIGRATIONS=1 في قسم ENV، كانت عملية الهجرة سريعة جدًا، مما سمح للموقع بالعمل بشكل طبيعي (وإن كان ربما بشكل أبطأ) أثناء تنفيذ عمليات الهجرة التي استغرقت أكثر من 20 دقيقة، حسب ظني.

أعتقد، دون أن أختبر ذلك بعد، أن استخدام نفس الحيلة سيساعد في تقليل وقت التوقف أثناء التثبيت ذو الحاوية الواحدة أيضًا. وإذا كنت محقًا، فستقوم بما يلي:

  • أضف SKIP_POST_DEPLOYMENT_MIGRATIONS=1 إلى ملف app.yml الخاص بك.
  • قم بتشغيل ./launcher rebuild app.
  • ثم ./launcher enter app.
  • بعد ذلك، شغّل SKIP_POST_DEPLOYMENT_MIGRATIONS=0 rake db:migrate.
  • أعد التعديل في app.yml إلى حالته الأصلية إلا إذا كنت تنوي تذكر إجراء عمليات الهجرة بعد كل ترقية.
  • ربما قم بإعادة البناء مرة أخرى للتأكد من عدم وجود أي مشاكل، خاصة أنك قد لا تتذكر ما قد يكون سببًا في تعطيل موقعك بعد أربعة أشهر عندما تحاول مرة أخرى، وعندها لن يكون لديك أي فكرة، وسيكون من الصعب على أي شخص تخمين ما قد يكون المشكلة.

لو كان هناك طريقة لجعل ./launcher يمرر SKIP_POST_DEPLOYMENT_MIGRATIONS=1 إلى العناصر دون الحاجة إلى تعديل ملف app.yml، لكان ذلك يجعل الأمور أقل تعقيدًا لمن يواجهون صعوبة في التحرير.

إذا تمكنت من إنجاز العمل في هذا المجال كما أعتقد أنني سأفعل، فسأنشئ موضوعًا جديدًا للإبلاغ عما توصلت إليه. لكن الدخان يجعلني معزولًا في غرفة لا أملك فيها شاشتي الكبيرة. (ألم يكن الوباء كافيًا؟! هل يجب أن يكون لدينا دخان أيضًا؟ وأنا لست حتى قريبًا بشكل خاص من النار تلك.)