تصدير/استيراد الإعدادات

لا شيء كبير حقًا، لكن واجهت مشكلة صغيرة عند استخدام site_settings:import وأثّرت عليّ بشدة.
هناك حل بسيط (ولكن غير أنيق) يتمثل في تشغيل مهمة rake مرتين، لكن هذا النوع من المهام يُنفذ عادةً دون تدخل بشري، لذا لم ألاحظ الخطأ في البداية.

(جزء من) ملف الإعدادات المُصدّر (site_settings:export):

sso_overrides_email: 'true'
email_editable: 'false'

استيراد هذا الملف إلى منتدى آخر:

ERROR: sso_overrides_email: يجب عليك تعطيل 'email editable' قبل تفعيل هذا الإعداد.
تم تغيير email_editable من: t إلى: false

بالطبع، في التشغيل الثاني يتم التقاط الإعداد:

تم تغيير sso_overrides_email من: f إلى: true

حلول محتملة:

  • التعايش مع الأمر وتشغيل مهمة استيراد rake مرتين
  • تصدير الإعدادات بترتيب updated_at
  • جعل مهمة rake تقوم بالاستيراد مرتين
  • تعطيل هذا النوع من الفحوصات عند الاستيراد من ملف
3 إعجابات

أي حل تعتقد أنه الأكثر منطقية؟

أنا لست متأكدًا.

سيعمل، ولن يتطلب جهدًا كبيرًا، وهو الأكثر منطقية، لكنه سيفشل لا يزال إذا تم تطبيق قيود إضافية بعد إعداد الإعدادات.

سيعمل لكنه لن يكون مفهومًا للناس،

هي قبيحة حقًا، لكنها تعمل

قد يؤدي إلى إدخال جميع أنواع الأشياء المزعجة وقد يتطلب جهدًا كبيرًا.

إعجابَين (2)

لا أعتقد أن هذا سيعمل.

أبسط طريقة بالنسبة لي هي مجرد تشغيل الأمر مرتين، وإذا حدث خطأ في المرة الثانية نتوقف.

ومع ذلك، فإن الأمر ليس بسيطًا مثل “التشغيل مرتين”:

  1. تقوم بتشغيله في المرة الأولى، مع التقاط الأخطاء في أي إعداد محدد تقوم بتعيينه.
  2. في المرة الثانية، تقوم بتشغيله دفعة واحدة وتتوقف إذا فشل أي شيء.

إذا كنا نتعامل بالفعل مع هذا الفوضى، فيجب علينا أيضًا التعامل مع الحالات التي توجد فيها اعتماديات متعددة.

هناك أيضًا مسألة التراجع النظيف، لذا فإن هذه المهمة ليست بسيطة على الإطلاق.

إعجابَين (2)