ملفات قاعدة البيانات غير متوافقة مع الخادم (مع التحديث داخل Linode)

لدي الأعراض الموصوفة في Error Updating from 3.4.0.beta3-dev to 3.4.0.beta3
الخطأ مختلف فقط.

لا يمكنني اقتباس صورتك.

لكن يبدو أنك بحاجة إلى حذف مجلد postgres_data_old القديم الخاص بك. إذا كانت لديك مساحة وإذا كنت متشائماً، يمكنك إعادة تسمته.

لا يمكنني معرفة كيفية نسخ مخرجات الشاشة الويبليش

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

هذا هو الجزء المهم من رسالتي.

ربما تحقق أولاً من أنه قديم
ls -l /var/discourse/shared/standalone/

وتأكد من أن دليل النسخ الاحتياطي هذا ليس بتاريخ اليوم.

إذا كان لديك مساحة قرص كافية، يمكنك فعل شيء مثل

cd /var/discourse
cd shared/standalone
mv postgres_data_old postgres_data_delete_me

ثم حاول مرة أخرى

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

لا فائدة.
أعتقد أنني أكرر Upgrade failed spectacularily

هل يمكنك مشاركة محتويات ملف app.yml الخاص بك؟ قم بإزالة أي معلومات حساسة قبل النشر.

من root@localhost: /var/discourse/containers

## هذا هو قالب حاوية 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.english"

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

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

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

env:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

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

  ## TODO: اسم النطاق الذي ستستجيب له هذه النسخة من Discourse
  DISCOURSE_HOSTNAME: <mydomain>

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

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

  ## TODO: خادم البريد SMTP المستخدم للتحقق من الحسابات الجديدة وإرسال الإشعارات
  DISCOURSE_SMTP_ADDRESS: <mymailorg>
  DISCOURSE_SMTP_PORT: <myport>
  DISCOURSE_SMTP_USER_NAME: <mysmpremail>
  DISCOURSE_SMTP_PASSWORD: <mypassword>
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (اختياري، الافتراضي صحيح)

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

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

## حاوية 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-solved.git
          - git clone https://github.com/discourse/discourse-math.git

## أي أوامر مخصصة لتشغيلها بعد البناء
run:
  - exec: echo "Beginning of custom commands"
  ## إذا كنت ترغب في تعيين عنوان البريد الإلكتروني 'من' لتسجيلك الأول، قم بإلغاء التعليق والتغيير:
  ## بعد الحصول على البريد الإلكتروني الأول للتسجيل، أعد التعليق على السطر. يحتاج إلى التشغيل مرة واحدة فقط.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "End of custom commands"


هل يمكنك تأكيد إصدار Docker الخاص بك؟ إذا كنت تستخدم إصدارًا أقدم من الإصدار الموصى به لدينا 24.0.7، أقترح عليك تحديث Docker ثم المحاولة مرة أخرى.

تم الإبلاغ عن مشكلات مماثلة في موضوع منفصل ويبدو أن تحديث Docker قد حل المشكلة هناك.

Docker version 20.10.7, build f0df350

cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.7 LTS (Xenial Xerus)"

يبدو أنك قد تواجه مشكلة مشابهة في Docker لتلك التي تم الإبلاغ عنها في الموضوع الآخر.

أقترح عليك تحديث كل من Ubuntu و Docker إلى إصدارات أحدث ثم محاولة إعادة البناء مرة أخرى.

إذا كان حاوية app القديمة الخاصة بك لا تزال موجودة، ولم تقم بتعديل ملفات البيانات الموجودة في shared/standalone/postgres_data، فقد تحاول تشغيل ./launcher start app لبدء الموقع على الحاوية القديمة في هذه الأثناء.

إعجابَين (2)

لقد اتبعت خطوات لتحديث Ubuntu وأخيرًا ضغطت على على هذا.


لكن الشاشة تجمدت عند

عند إعادة الاتصال، أرى أن لدي Ubuntu 18.0.4.6 LTS (Bionic Beaver)

سيكون الأمر أسهل بكثير إذا قمت بإنشاء جهاز افتراضي جديد بنظام تشغيل محدّث. الإصدار 18.04 تجاوز نهاية عمره الافتراضي، والإصدار 20.04 سينتهي في أبريل.\n\nإذا كان لديك نسخة احتياطية محدّثة، فقم بإنشاء خادم جديد واستعادة تلك النسخة الاحتياطية، متجنبًا تمامًا مشكلات ترقية postgres.\n\n[quote="kirsten greed, post:14, topic:350727, username:kgreed"]\nلقد مررت بخطوات تحديث Ubuntu وضغطت أخيرًا على [تحديث postgres]\n[/quote]\n\nلا يحتاج Discourse إلى تثبيت postgres على نظام التشغيل. هذا سبب آخر لبدء التشغيل بنظام تشغيل جديد.

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

شكرا جاي
لقد تمكنت من استعادة نسخة احتياطية من linode إلى linode آخر (linode2)
الآن أحتاج إلى فتح Discourse على linode2 حتى أتمكن من الحصول على Discourse لإرسال نسخة احتياطية لي عبر البريد الإلكتروني.
لقد قمت بإعداد DNS جديد لـ linode2 ولكني أحصل على 502 Bad Gateway عندما أذهب إلى هناك.
ربما علي الانتظار قليلاً؟
من الغريب أن discbak.softwarebydesign.com.au (linode2) يعيد التوجيه حاليًا إلى discourse.softwarebydesign.com.au (على linode الأصلي)

يمكنك نسخ النسخة الاحتياطية باستخدام scp/rsync. إنها أسهل وأسرع (إلا إذا كنت لا تعرف ما يعنيه ذلك).

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

إذا كان discbak يعمل بنفس الصورة مثل الخادم الآخر، أتوقع أن يعطيك خطأ في الشهادة (إلا إذا قمت بزيارة http://) ثم يعيد التوجيه إلى أي شيء موجود في HOSTNAME.

من العدل أن أقول إنني لا أعرف حقًا ما أفعله.
لقد أنشأت خادمًا افتراضيًا خاصًا جديدًا يعمل بنظام Ubuntu 24.0.1 LTS ووصلت إلى التعليمات لـ

rsync -rvz example.com:/var/discourse /var

بسبب ترقيتي الفاشلة، يعطي example.com خطأ 502 بوابة سيئة.
أنا في منحنى تعليمي أحاول معرفة كيفية منح الوصول على أي حال.