واجهتُ هذه المشكلة أيضًا - وتشغيل ذلك السكربت (النص البرمجي) تطلّب بعض التوجيه من ask.discourse.com، إذ ليس الأمر سهلًا للغاية لمديري الأنظمة الأقل خبرة!
إليك ملخص لبقية الأشخاص:
لمن يواجه هذه المشكلة في التثبيت القياسي عبر docker، إليك الطريقة الفعّالة لتشغيل السكربت المذكور أعلاه.
احصل على واجهة سطر أوامر (shell) وافتح psql.
-
حاوية واحدة:
cd /var/discourse ./launcher start app ## مطلوب فقط إذا كنت قد واجهت إعادة بناء فاشلة مسبقًا ./launcher enter app su -c 'psql discourse' postgres -
إعداد حاويتين:
cd /var/discourse ./launcher enter data su -c 'psql discourse' postgres
يجب أن ترى موجهًا (prompt) يظهر عليه discourse=#. إذا كنت غير متأكد، نفّذ الأمر \conninfo.
شغّل السكربت.
الصق الكتلة الكاملة DO $$ ... $$; من منشور نات أعلاه عند الموجه واضغط على Enter. عند النجاح، ستظهر إشعارات مثل:
NOTICE: Renamed resenha_rooms to voice_rooms
NOTICE: Renamed resenha_room_memberships to voice_room_memberships
...
إذا ظهر استثناء (exception) بدلاً من ذلك (مثل: “Both Resenha and Voice tables exist. Nothing was changed.”)، توقف والصق الرسالة هنا مرة أخرى — السكربت مصمم ليكون آمنًا عمدًا ولا يغيّر شيئًا في هذه الحالة.
اخرج وأعد البناء.
\q
exit
ثم عد إلى المضيف (host):
./launcher rebuild app # حاوية واحدة
./launcher rebuild web_only # حاويتان (يمكن أيضًا القيام بذلك عبر bootstrap بالطبع)
قد تحتاج إلى إعادة بناء مرتين — الأولى تُنهي حالة الترحيل (migration) التي طُبّقت جزئيًا، والثانية تكمل العملية بنجاح.