إعداد خادم تجريبي

هذه هي نقطة الإعداد أعلاه؛ من المفيد جدًا أن يشير خادم الاختبار إلى نفس الحاوية، مما يسهل مزامنتها.

ومع ذلك، لا تريد أن يساهم بأي نسخ احتياطية تلقائيًا (أو يحذف أيًا منها) - ومن هنا جاء إيقاف تشغيل هذه الإعدادات:

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

إعجابَين (2)

شكرًا لك، ناثان. رأيت إشارة إلى أن النسخ الاحتياطي لـ S3 يجعل الأمور أسهل، لكن النسخ الاحتياطي يختلف عن أصول الموقع، لذا لم أكن متأكدًا.

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

إعجاب واحد (1)

يعد نسخ النسخ الاحتياطي أمرًا رائعًا لأنه يسهل نسخ قاعدة بيانات الإنتاج الخاصة بك إلى بيئة التدريج.

إعجابَين (2)

أخطط لإنشاء نسخة طبق الأصل من إنتاج Discourse الخاص بي باستخدام طريقة rsync.

لدي عدد قليل من مواقع الويب الأخرى التي تتكامل مع Discourse، لذا فإن امتلاك إصدارات التطوير/الاختبار لتلك المواقع قادرة على الوصول والتفاعل مع إصدار التطوير/الاختبار/المرحلة من Discourse سيكون مثاليًا.

لذلك سأقوم بتشغيله فقط عند الحاجة، وسأقوم باستعادة نسخة احتياطية من قاعدة بيانات PROD الخاصة بي على STAGING بشكل دوري - ليس يوميًا وربما مرة واحدة شهريًا فقط.

إذا قمت بذلك، فكيف أمنعها من تغيير بعض الإعدادات مرة أخرى عند إجراء استعادة قاعدة البيانات؟ :thinking:

هذه على سبيل المثال، ستكون لا تقدر بثمن:

هل هناك طريقة يمكنني من خلالها استعادة نسخة احتياطية من قاعدة البيانات ثم ربما تطبيق بعض الإعدادات يدويًا قبل بدء تشغيل Discourse؟ أي أفكار أو اقتراحات أو مشاكل أخرى؟ :thinking:

إذا كنت تحتفظ بنسخ احتياطية على S3 وتكوّن ذلك عبر متغيرات البيئة (ENV variables)، فيمكنك بسهولة إنشاء موقع جديد يمكنه استعادة هذا النسخ الاحتياطي. فقط قم بتشغيل جهاز افتراضي جديد، واستنسخ discourse، وانسخ ملف yml، وأعد البناء واستعد. يمكنك تجاوز الإعدادات في قاعدة البيانات باستخدام متغيرات البيئة كما في الاقتباس في منشورك.

3 إعجابات

ممتاز، يبدو الأمر سهلاً للغاية :smiley:

إعجابَين (2)

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

عندما جربتها الآن، قامت بإنشاء سجلات للمجموعة والمستخدم، ولكن عند إنشاء الفئات فشلت مع

ActiveRecord::RecordInvalid: Validation failed: Category Name has already been taken (ActiveRecord::RecordInvalid)

يبدو أنه يجب أن يكون ذكيًا بما يكفي لعدم محاولة إنشاء فئة باسم موجود بالفعل.

لم يكن موقعي فارغًا، ومع ذلك. هناك أيضًا مهمة dev:repopulate، والتي تمحو قاعدة البيانات أولاً.

إعجاب واحد (1)

شكراً لك جاي! إليك لقطة شاشة توضح ما جربته… يبدو أنني بحاجة إلى أن أكون في “بيئة التطوير”. كيف أدخل إليها؟

لقد انتهى بي الأمر باستعادة نسخة احتياطية قديمة من إحدى مثيلات discourse الخاصة بي حيث كنت قد استخدمت هذه الطريقة سابقًا للتعبئة. اضطررت إلى القيام بـ هذا، لكنه نجح.

هناك شيء عليك القيام به لتتمكن من إسقاط قاعدة البيانات. إذا قمت بمهمة db:drop، فستخبرك بما هي. لذا أعتقد أنك ستحتاج إلى sv stop unicorn ثم إسقاط قاعدة البيانات وإنشائها وترحيلها قبل تشغيل المهمة. أو هذا هو الشيء التالي الذي سأحاوله، ولكن لديك حل آخر…

إعجاب واحد (1)

تم تقسيم 14 مشاركة إلى موضوع جديد: تغيير الخادم إلى إعداد حاويتين

أحاول تهيئة بيانات اختبار على خادم الاختبار الخاص بي، ولكني أواجه خطأ:

rake aborted!
Database commands are only supported in development environment

هذا في إعداد متعدد المواقع، لذا فإن الأوامر التي أقوم بتشغيلها هي:

./launcher enter web_only
ALLOW_DEV_POPULATE=1 bundle install
RAILS_DB=instance-x ALLOW_DEV_POPULATE=1 rake dev:populate

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