حاولت تشغيل التحديثات وإعادة البناء، لكنني انتهيت بهذه الرسالة الخطأ الجميلة:
I, [2023-01-18T08:05:48.701709 #1] INFO -- : cd /var/www/discourse & su discourse -c 'LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all'
I, [2023-01-18T08:05:52.431210 #1] INFO -- :
I, [2023-01-18T08:05:52.431807 #1] INFO -- : cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate'
2023-01-18 08:05:59.081 UTC [1166] discourse@discourse ERROR: could not create unique index "index_tags_on_name_ccnew_ccnew_ccnew5"
2023-01-18 08:05:59.081 UTC [1166] discourse@discourse DETAIL: Key (name)=(vuejs) is duplicated.
2023-01-18 08:05:59.081 UTC [1166] discourse@discourse STATEMENT: REINDEX INDEX CONCURRENTLY index_tags_on_name_ccnew_ccnew
rake aborted!
StandardError: An error has occurred, all later migrations canceled:
PG::UniqueViolation: ERROR: could not create unique index "index_tags_on_name_ccnew_ccnew_ccnew5"
DETAIL: Key (name)=(vuejs) is duplicated.
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/rack-mini-profiler-3.0.0/lib/patches/db/pg.rb:110:in `exec'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/rack-mini-profiler-3.0.0/lib/patches/db/pg.rb:110:in `async_exec'
هناك مواضيع أخرى على المنتدى بها مشاكل مشابهة (1, 2, 3) ولكن عندما أحاول الدخول إلى الحاوية أحصل على هذا:
/var/discourse# ./launcher enter app
x86_64 arch detected.
Error: No such container: app
لذلك، أنا غير قادر على إسقاط الفهارس يدويًا.
هل هناك أي اقتراح آخر حول النهج الذي يجب أن أتخذه بعد ذلك؟
شكراً لك على تقرير الخطأ. سألقي نظرة على هذا، لكنني أعتقد أن هناك مشكلة في فهرس في قاعدة بياناتك ومحاولة هجرة حديثة لإصلاح ذلك، ولكن بعض المشكلات لا يمكن إصلاحها دون تدخل بشري.
أعتقد أن الالتزام الذي أدخل الهجرة التي فشلت هو هذا:
يمكنك محاولة تثبيت مثيل Discourse الخاص بك على الإصدار السابق وهو الالتزام 690e2f15ab9549486aaa6750e1093c1336bf17f2. قم بتحرير ملف app.yml الخاص بك وقم بتعيين مفتاح version ضمن params. تأكد من إلغاء التعليق على هذا المفتاح أيضاً!
بعد ذلك، يجب أن يبدأ كل شيء ويجب أن تكون قادراً على إزالة علامة vuejs المكررة، ولكن قد يكون لذلك بعض الآثار غير المرغوب فيها إذا كانت العلامة المكررة قيد الاستخدام. سنحاول إيجاد حل أفضل، ولكن هذا يجب أن يعمل حتى ذلك الحين.
لقد رأينا هذا في الماضي، إنها مشكلة كابوس ولكن تم عزلها لتكون متعلقة بالترقية.
يعتمد هيكل الفهرس في PG على اللغة المحلية في وقت التثبيت ويمكن أن تؤدي الترقيات إلى كابوس في بعض الأحيان.
إذا لم يتم إصدار إعادة الفهرسة في وقت مبكر بما فيه الكفاية، فقد تحدث مشاكل. لم تقم بعض ترقيات Docker PG المبكرة لدينا بتشغيل هذا… وبعض التثبيتات القديمة للأسف لديها قنبلة موقوتة.
تم حل هذا إلى حد كبير هذه الأيام في النظام البيئي ولكن بعض الألم لا يزال قائماً.
ربما يساعد هذا في تحديد السبب بشكل أكبر، لذا إليك بعض التفاصيل الإضافية حول النظام:
التثبيت قديم بالفعل، منذ عام 2014، ولكن يتم تحديث النظام مرة واحدة على الأقل شهريًا (على الرغم من أنه عادةً ما يكون كل أسبوعين). لذلك لم يتم تخطي أي إصدار رئيسي على الإطلاق.
لا يوجد قفل إصدار، لذلك نحن نعمل بشكل أساسي على أحدث إصدار متاح في الفرع main (YOLO!).
على الرغم من أننا جربنا عددًا قليلاً جدًا من الإضافات غير الرسمية منذ فترة، إلا أن جميع الإضافات المثبتة رسمية وقد كان الأمر كذلك على مدار … 5 سنوات أو أكثر.