خطأ في الترقية، فشل في التمهيد

مرحباً! لدي مشكلة في آخر تحديث:

FAILED -------------------- Pups::ExecError: فشل cd /var/www/discourse & su discourse -c ‘bundle exec rake db:migrate’ مع القيمة #<Process::Status: pid 690 exit 1> موقع الفشل: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn’ فشل التنفيذ مع المعلمات {“cd”=>“$home”, “hook”=>“db_migrate”, “cmd”=>[“su discourse -c ‘bundle exec rake db:migrate’”]} 7027ff0ccd166f831f9728472676ad91704fdd4caa6833a219d44697e740acdc ** فشل الإقلاع ** يرجى التمرير لأعلى والبحث عن رسائل خطأ سابقة، قد يكون هناك أكثر من واحدة. قد يساعد ./discourse-doctor في تشخيص المشكلة.

توقف Sideqik أيضاً.

هل يمكن لأحد مساعدتي؟ شكراً!!

ملاحظة: الموقع هو llastres.com

إعجابَين (2)

هل يمكنك فعل ما يقوله الرسالة و

نحن بحاجة إلى السجل بأكمله من أجل استكشاف الأخطاء وإصلاحها.

3 إعجابات

حسنًا، كيف يمكنني التعرف عليها؟ هل أبحث عن كلمة “error”؟ إذا أخبرتني بكيفية تشغيل السجل، فسأقوم بإرفاقه. أنا جديد في استخدام الخوادم. شكرًا جزيلاً لك على مساعدتك.

تعديل، وجدت هذا:

Caused by:
PG::DuplicateTable: ERROR: relation "discourse_reactions_reactions" already exists
إعجابَين (2)

هل يمكنك مشاركة ملف app.yml الخاص بك؟

3 إعجابات
## هذا هو القالب الشامل والمتكامل لحاوية Discourse المستقلة
##
## بعد إجراء تغييرات على هذا الملف، يجب عليك إعادة البناء
## /var/discourse/launcher rebuild app
##
## كن حذرًا جدًا عند التحرير!
## ملفات YAML حساسة للغاية للأخطاء في المسافات البيضاء أو المحاذاة!
## قم بزيارة http://www.yamllint.com/ للتحقق من صحة هذا الملف حسب الحاجة

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
## قم بإلغاء التعليق على هذين السطرين إذا كنت ترغب في إضافة Lets Encrypt (https)
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"

## ما هي منافذ TCP/IP التي يجب أن تعرضها هذه الحاوية؟
## إذا كنت تريد أن تشارك Discourse منفذًا مع خادم ويب آخر مثل Apache أو nginx،
## انظر https://meta.discourse.org/t/17247 للحصول على التفاصيل
expose:
  - "80:80"   # http
  - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.spanish"

  ## قم بتعيين db_shared_buffers إلى حد أقصى 25٪ من إجمالي الذاكرة.
  ## سيتم تعيينه تلقائيًا بواسطة bootstrap بناءً على الذاكرة العشوائية المكتشفة، أو يمكنك تجاوزها
  db_shared_buffers: "2048MB"

  ## يمكن أن يحسن أداء الفرز، ولكنه يضيف استخدام الذاكرة لكل اتصال
  #db_work_mem: "40MB"

  ## ما هو إصدار Git الذي يجب أن تستخدمه هذه الحاوية؟ (الافتراضي: tests-passed)
  #version: tests-passed

env:
  LC_ALL: es_ES.UTF-8
  LANG: es_ES.UTF-8
  LANGUAGE: es_ES.UTF-8
  DISCOURSE_DEFAULT_LOCALE: es

  ## كم عدد طلبات الويب المتزامنة التي يمكن دعمها؟ يعتمد على الذاكرة ووحدات المعالجة المركزية.
  ## سيتم تعيينه تلقائيًا بواسطة bootstrap بناءً على وحدات المعالجة المركزية المكتشفة، أو يمكنك تجاوزها
  UNICORN_WORKERS: 8

  ## TODO: اسم النطاق الذي ستستجيب له هذه النسخة من Discourse
  ## مطلوب. لن تعمل Discourse مع رقم IP عادي.
  DISCOURSE_HOSTNAME: EDITED

  ## قم بإلغاء التعليق إذا كنت تريد بدء تشغيل الحاوية بنفس
  ## اسم المضيف (-h option) كما هو محدد أعلاه (الافتراضي "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: قائمة بالبريد الإلكتروني المفصولة بفواصل والتي ستصبح مسؤولة ومطورة
  ## عند التسجيل الأولي، مثال 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'EDITED'

  ## TODO: خادم البريد SMTP المستخدم للتحقق من الحسابات الجديدة وإرسال الإشعارات
  # عنوان SMTP واسم المستخدم وكلمة المرور مطلوبة
  # تحذير: يمكن أن تتسبب العلامة '#' في كلمة مرور SMTP في حدوث مشاكل!
  DISCOURSE_SMTP_ADDRESS: EDITED
  DISCOURSE_SMTP_PORT: EDITED
  DISCOURSE_SMTP_USER_NAME: EDITED
  DISCOURSE_SMTP_PASSWORD: EDITED
  DISCOURSE_SMTP_ENABLE_START_TLS: true           # (اختياري، الافتراضي true)
  DISCOURSE_SMTP_DOMAIN: EDITED
  DISCOURSE_NOTIFICATION_EMAIL: EDITED

  ## إذا أضفت قالب Lets Encrypt، قم بإلغاء التعليق أدناه للحصول على شهادة SSL مجانية
  LETSENCRYPT_ACCOUNT_EMAIL: EDITED

  ## عنوان CDN http أو https لنسخة Discourse هذه (تم تكوينه للسحب)
  ## انظر https://meta.discourse.org/t/14857 للحصول على التفاصيل
  #DISCOURSE_CDN_URL: https://discourse-cdn.example.com

  ## مفتاح MaxMind geolocation IP address للبحث عن عنوان IP
  ## انظر https://meta.discourse.org/t/-/137387/23 للحصول على التفاصيل
  DISCOURSE_MAXMIND_LICENSE_KEY: EDITED
## الحاوية Docker عديمة الحالة؛ يتم تخزين جميع البيانات في /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## الإضافات هنا
## انظر https://meta.discourse.org/t/19157 للحصول على التفاصيل
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-reactions
## أي أوامر مخصصة لتشغيلها بعد البناء
run:
  - exec: echo "Beginning of custom commands"
  ## إذا كنت تريد تعيين عنوان البريد الإلكتروني 'من' لتسجيلك الأول، قم بإلغاء التعليق والتغيير:
  ## بعد الحصول على البريد الإلكتروني الأول للتسجيل، أعد التعليق على السطر. يحتاج فقط إلى التشغيل مرة واحدة.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "End of custom commands"
إعجاب واحد (1)

الحقيقة هي أنني لم أواجه أي مشكلة في التحديث مطلقًا. لم أكن أفعل شيئًا غريبًا، قمت فقط بتحديث النظام وظهر لي التحذير بحدوث خطأ.

هذا هو السجل الكامل:

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

إنها تواجه مشكلة في تشغيل ترحيل من مايو 2021. هل تم نقل هذا الموقع بين قنوات الإصدار (تجريبي/مستقر/اختبارات ناجحة) أو استعادته من نسخة احتياطية في وقت ما؟

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

أتذكر أننا انتقلنا من mybb في ذلك التاريخ (21 مايو)

نعم، صحيح أنني حاولت اليوم استعادة نسخة احتياطية من بداية الشهر لمحاولة الحصول على نسخة عاملة قبل الخطأ، ولكن عندما نقرت على “بدء”، ظهرت شاشة خطأ.

آسف إذا كانت كتابتي غريبة، أنا أستخدم مترجمًا.

إعجابَين (2)

ما زلت لا أجد حلاً ولا تزال المنتديات معطلة، هل لديك أي فكرة إلى أين أذهب من هنا؟ شكراً!!

إعجابَين (2)

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

لقد قمت بتحديثه يدويًا، وكان المنتدى على ما يرام. لا أعرف ما إذا كان هذا سيساعدك أم لا.

إعجابَين (2)

شكرا على ردك. أعتقد أن مشكلتي تتعلق بخطأ في قاعدة البيانات متعلق بترحيل المنتديات. إعادة بناء التطبيق لا تعمل.

لقد تحققت من الأسئلة الشائعة والأدلة، لكنني لم أجد أي حل.

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

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

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

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

الموضوع الوحيد الذي وجدته بمشكلة مماثلة هو Unable to login into discourse suddenly - #8 by Tarek_Khalil وكانت النصيحة هي استعادة نسخة احتياطية من قبل مشكلة الترحيل، والتي قد لا تكون الخيار الأفضل في حالتك لأنها كانت منذ بعض الوقت.

أخشى أن أخطاء قاعدة البيانات خارج نطاق خبرتي. @pfaffman و @RGJ جيدان جدًا عادةً في هذه الأمور (على الرغم من أنني لا أعرف ما إذا كان هذا شيئًا قد واجهوه من قبل). هل لديكم أي حيل في جعبتكم لهذا؟

إعجابَين (2)

ما تريد فعله هو الدخول إلى postgres وحذف هذا الجدول.

بشكل عام، الأمر أشبه بـ

./launcher enter app
sudo postgres
psql
drop table the_table _mentioned above ;

وبعد ذلك يجب أن تكون قادرًا على تشغيل الترقية.

تحرير: ولكن نأمل أن تقوم بعمل نسخة احتياطية لقاعدة البيانات فقط في حالة حدوث أي طارئ!

4 إعجابات

أعتذر، أنا جديد في استخدام خوادم وأوامر لينكس. لم يكن التطبيق قيد التشغيل، لذا قمت بما يلي:

./launcher start app
x86_64 arch detected.                                                                                           starting up existing container                          
+ /usr/bin/docker start app
app

بعد ذلك:

./launcher enter app

ثم، باتباع تعليماتك، الخطأ الأول:

sudo postgres            
sudo: postgres: command not found

إذا كتبت psql:

psql: error: FATAL: database "root" does not exist

عذرًا. أنا على هاتفي ولا أفكر جيدًا بما يكفي للشرح…

بعد بدء التطبيق

su - postgres
psql discourse

ثم

 drop table discourse_reactions_reactions ;

ثم اكتب exit أو control-d عدة مرات للخروج من كل شيء

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

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

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

أجبت على نفسي. بعد إفراغ 7 جداول (discourse_reactions_reactions، directory_columns، external_upload_stubs، associated_groups، user_associated_groups، group_associated_groups، discourse_reactions_reaction_users) الموقع يعمل الآن. لقد قمت أيضًا باستعادة آخر نسخة احتياطية!

شكرًا لكم جميعًا على مساعدتكم! أتمنى لكم عطلة نهاية أسبوع سعيدة :slight_smile:

إعجابَين (2)

ولكن هل تمكنت من الترقية إلى أحدث إصدار؟

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