سؤال

أقوم بتطوير متجر إلكتروني باستخدام Magento.سيكون الموقع ذو حركة مرور عالية وسيحتاج إلى إعداد خادمين، الاختبار والإنتاج.

سؤالي هو كيف تتعامل المتاجر عبر الإنترنت، وتحديدًا Magento، مع هذا الأمر؟

الفكرة التي كانت لدي هي:

  • خذ موقع الإنتاج دون اتصال بالإنترنت
  • قاعدة بيانات اختبار فارغة
  • نسخ البيانات من قاعدة بيانات الإنتاج.(ربما )
  • امتحان
  • نسخ الملفات وقاعدة البيانات إلى موقع الإنتاج

أعلم أن Magento يقدم خيار Enterprise، ولكن هذا هو السيناريو الذي أود كتابته بنفسي.

هل كانت مفيدة؟

المحلول

لا ينبغي عليك أن تجعل موقع الإنتاج غير متصل بالإنترنت.

ما أود أن أقترحه (ويجب أن تكون قادرًا على كتابة هذا البرنامج النصي) موجود على موقع الإنتاج للتشغيل mysqldump -u root -ppassword db_name > db_name.sql لإنتاج نسخة من قاعدة البيانات.ثم قم بتشغيل rsync (يمكنك الحصول عليه لكل من Linux و windows) في دليل الملفات لمزامنة أي ملفات تريد نسخها (الصور؟) إلى جهاز الاختبار.

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

من الأفضل عدم إغلاق موقع الإنتاج إذا لم تكن بحاجة إلى ذلك.

نصائح أخرى

تريد السيد/العبد mySQL مع قراءة العبد من قاعدة البيانات التابعة ولكن الكتابة إلى البث المباشر.يمكن إعداد هذا في ملف local.xml.يجب أن تكون قادرًا على تشغيل rsync للملفات، باستخدام --exclude لملفات var/session وvar/cache.قد ترغب أيضًا في --استبعاد الشعار إذا كان خادم تطوير.يمكن بعد ذلك تغيير الشعار ليقول "اختبار" حتى لا تخلط بينه وبين Live.

في الواقع، إذا قمت بإجراء تغييرات على قاعدة البيانات، فستحتاج إلى جعل الموقع غير متصل بالإنترنت (حتى لبضع ثوانٍ فقط) أثناء التبديل من الكود القديم إلى الكود الجديد، وتشغيل البرنامج النصي لترحيل قاعدة البيانات.

قد تكون مهتمًا بمعرفة ذلك

  • يحتوي postgres على DDL للمعاملات:إذا قمت بلف البرنامج النصي للترحيل الخاص بك في معاملة وانكسر شيء ما في المنتصف، فسيتم إرجاع الأمر برمته (بما في ذلك DROP TABLE)

  • لا يحتاج postgres إلى إعادة كتابة الجدول لإضافة عمود (يقوم MySQL بذلك وهو بطيء جدًا)

  • إذا كنت تستخدم MyISAM، فأنت محكوم عليك بالفشل لعدة أسباب، أحدها هو أن إجراء النسخ الاحتياطية سيؤدي إلى جعل موقعك غير متصل بالإنترنت لبضع دقائق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top