it-swarm.asia

كيف أقوم بدمج التغييرات من نسخة تطوير الموقع إلى الموقع المباشر دون فقدان محتوى جديد؟

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

40
Chaulky

بالنسبة لأنواع المحتوى وطرق العرض وتغييرات الهيكل في موقع dev ، انظر إلى استخدام الميزات لتصدير قاعدة البيانات إلى التعليمات البرمجية.

لترحيل المحتوى ، هناك العديد من الخيارات ، ولكن ليس هناك حل واحد قوي. أحد الأمثلة --- مجموعة النشر .

16
budda

لقد تبنيت في الأساس مدرستين فكريتين هنا (مدرسة فكرية ثالثة ، تختلف قواعد البيانات ، ولن أناقش لأن التعقيد مرتفع جدًا).

1) النشر بإسقاط قاعدة بيانات الإنتاج واستيراد الخلية لقاعدة بيانات التطوير. بشكل اختياري ، قم بتشغيل بحث/استبدال regex مسبقًا على أي روابط مطلقة مشفرة تشير إلى عنوان URL dev في تفريغ SQL. بعد استيراد dev db إلى prod ، قم تلقائيًا بتشغيل عبارات SQL (عادةً عبر البرنامج النصي) بعد ذلك لتغيير أي إعدادات تختلف عن prod عن dev (على سبيل المثال ، ربما لديك في جدول المتغيرات بعض إعدادات الاتصال للاتصال بالأنظمة الخارجية التي تحتاج إليها التغيير للإشارة إلى الأنظمة الخارجية المعززة بدلاً من إصدار مطور البرامج).

2) استخدم الميزات الوحدة النمطية ، كما ذكر من قبل budda ، لإعدادات المشرف ، واستخدم تصدير العقدة وحدة لتصدير/استيراد المحتوى مع حذف الكل الوحدة. لذا فإن سير العمل هو:

  1. استخدم node_export والميزات لتصدير العقد/الميزات إلى الملفات
  2. اختياريًا (ونأمل) التحكم في الإصدار
  3. تحميل الملفات على نظام همز
  4. استخدم واجهة drush أو admin لتحميل الميزات
  5. استخدم drush delete-all أو واجهة المشرف لحذف جميع عُقد الأنواع التي تريد استيرادها
  6. استخدم drush ne-import أو واجهة الإدارة لاستيراد العقد من ملف العقد التي قمت بتصديرها.

ملاحظة واحدة ، أقترح بشدة اعتماد سير عمل قياسي ، حيث يسير المحتوى في اتجاه واحد فقط. إما Dev -> Prod أو Prod -> Dev (أفضل هذا).

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

2
coderintherye

تفريغ قواعد البيانات لنسخ الموقع المباشر ونسخة التطوير للموقع في ملف SQL (استخدم نفس المعلمات والإعدادات لكل من مقالب).
ثم قارن كلا ملفي SQL باستخدام أداة مقارنة صغيرة ExamDiff . سيعرض اختلافات الملفات جنبًا إلى جنب بألوان مختلفة. يمكنك القفز مباشرة إلى الاختلافات أيضًا (بدون التمرير). افحص الاختلافات وأضف/عدّل الخطوط إلى ملف SQL للموقع المباشر. تأكد من عدم وجود مسار مطلق/عنوان URL لبيئة التطوير في هذا الملف. انتهى! حان الوقت لاستعادة قاعدة البيانات للموقع الحي.
اجعل حياتك أسهل: في الخطوة الأولى ، تفريغ فقط تلك الجداول التي تم تغييرها. على سبيل المثال ، إذا قمت بتحرير وحدة نمطية في نسخة التطوير والتي تستهدف جدولاً منفصلاً ، فقم بتفريغ هذا الجدول فقط. إذا لم تكن متأكدًا من جدول معين ، فلا بأس من تفريغ قاعدة البيانات بالكامل.

1
user931