שחזור גרסת גיבוי ספציפית של Discourse

היה לי פורום דיון קטן במשך כמה שנים והוא עובד טוב. הגדרתי גיבויים אוטומטיים, אבל לא עדכנתי את גרסת ה-discourse במשך זמן רב.

השרת מת, אבל יש לי גיבוי. הגיבוי הוא מגרסת ה-discourse הישנה, מלפני כשנתיים. כאשר אני מנסה להתקין את הגרסה החדשה ביותר ולשחזר מהגיבוי, זה לא עובד. כאשר אני מנסה להתקין את הגרסה הישנה, זה לא אפשרי: סקריפט ההתקנה מושך אוטומטית קומיטים חדשים ואת תמונת הדוקר האחרונה, אפילו מצאתי את השורות האלה בסקריפט ההפעלה ומחקתי אותן, אבל קוד פנימי כלשהו בתמונת הדוקר גם בודק ומעדכן את ה-git לגרסה האחרונה.

מה עלי לעשות? כיצד אוכל להפעיל גרסת discourse ישנה או לשחזר גיבוי ישן בגרסה חדשה?

If you want help, you’ll need to be more specific. It should work. There’s a good chance that the issue will also not work if you were able to install the same version of Discourse that you had then.

What was the error you got when you tried to restore?

אין שגיאות קריטיות בפלט של ./launcher logs app, אך הפורום אינו פועל. כמעט כל הכפתורים אינם פועלים, אין נושאים, וה-HTML נראה מוזר (עמוד הפתיחה הפגום חוזר על עצמו וניתן לגלול אותו לתחתית ללא הגבלה).

אני לא איש טכני מקצועי, ואני מקווה שתוכלו לומר לי אילו יומנים אוכל להוסיף לדוח שלי והיכן אוכל למצוא אותם.

האם מישהו יודע איפה אני יכול למצוא לוגים אמינים?

האם יש שגיאות במסלול /logs בפורום שלך?

הבעיה היא שאני לא יכול לגשת ל-/logs - “דף זה אינו קיים או פרטי”. ואני לא יכול להתחבר כדי לבדוק את זה.

Try using the admin login at https://forum.example.com/u/admin-login[1].


  1. You learn something new everyday! ↩︎

Thanks for link, but it won’t work. It sends email, but I don’t have smtp server and using this plugin: Disable Email Verification for Discourse Plugin

Maybe, some console commands on server are possible to check what happened?

ככל הידוע לי התוסף הזה שבור. ייתכן שלא תרצה להשתמש בו.

לייק 1

לא הייתה פתרון שונה שיאפשר למשתמשים ליצור חשבונות ללא אישור דוא"ל, כאשר יצרתי שרת.

אולי זה שבור עכשיו, אבל אני מנסה לפחות לשחזר את הגרסה הישנה של הפורום.

לייק 1

כרגע איני יכול לגשת לנתונים כלשהם מהפורום, גם אם יש לי גיבוי. רק הלוגו והתגים של הפורום מוצגים, וכל הכפתורים אינם שמישים.

לייק 1

Ouch, that complicates things. Could you try what is mentioned here to get some logs?

האם ניסית מצב בטוח?

וכתוב בתגובה את התוסף השבור, ואולי גם תוספים אחרים שיש לך. אתה יכול להוסיף אותם בחזרה ברגע שתצליח משהו.

יומני הייצור של Rails אינם מכילים שגיאות קריטיות, קובץ product_errors.log ריק.

יומני שגיאות Unicorn OID לא ידוע 17246: נכשל בזיהוי סוג של 'embeddings'. הוא יטופל כמחרוזת. נכשל בדיווח שגיאה: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 2 EOFError subscribe failed, reconnecting in 1 second. Call stack /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client/ruby_connection.rb:103:in `rescue in read' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client/ruby_connection.rb:94:in `read' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:535:in `next_event' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/subscribe.rb:66:in `subscription' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/subscribe.rb:17:in `subscribe' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis.rb:175:in `_subscription' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/commands/pubsub.rb:17:in `subscribe' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus/backends/redis.rb:293:in `global_subscribe' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus.rb:769:in `global_subscribe_thread' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus.rb:740:in `block in new_subscriber_thread' נכשל בדיווח שגיאה: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 Error fetching job: Connection refused - connect(2) for 127.0.0.1:6379 נכשל בדיווח שגיאה: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 Error fetching job: Connection refused - connect(2) for 127.0.0.1:6379 נכשל בדיווח שגיאה: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 Error fetching job: Connection refused - connect(2) for 127.0.0.1:6379 נכשל בדיווח שגיאה: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 Error fetching job: Connection refused - connect(2) for 127.0.0.1:6379 נכשל בדיווח שגיאה: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 Error fetching job: Connection refused - connect(2) for 127.0.0.1:6379 נכשל בדיווח שגיאה: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 Job exception: Connection refused - connect(2) for 127.0.0.1:6379 sidekiq-exception נכשל בדיווח שגיאה: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 Job exception: Connection refused - connect(2) for 127.0.0.1:6379 sidekiq-exception נכשל בדיווח שגיאה: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 Job exception: Connection refused - connect(2) for 127.0.0.1:6379 sidekiq-exception נכשל בדיווח שגיאה: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 Job exception: Connection refused - connect(2) for 127.0.0.1:6379 sidekiq-exception נכשל בדיווח שגיאה: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 Job exception: Connection refused - connect(2) for 127.0.0.1:6379 sidekiq-exception נכשל בדיווח שגיאה: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 heartbeat: Connection refused - connect(2) for 127.0.0.1:6379 נכשל בדיווח שגיאה: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 3 Job exception: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) sidekiq-exception נכשל בדיווח שגיאה: Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) 2 Connection refused - connect(2) for 127.0.0.1:6379 (redis://localhost:6379) subscribe failed, reconnecting in 1 second. Call stack /usr/local/lib/ruby/3.3.0/socket.rb:1219:in `__connect_nonblock' /usr/local/lib/ruby/3.3.0/socket.rb:1219:in `connect_nonblock' /usr/local/lib/ruby/3.3.0/socket.rb:60:in `connect_internal' /usr/local/lib/ruby/3.3.0/socket.rb:141:in `connect' /usr/local/lib/ruby/3.3.0/socket.rb:647:in `block in tcp' /usr/local/lib/ruby/3.3.0/socket.rb:231:in `each' /usr/local/lib/ruby/3.3.0/socket.rb:231:in `foreach' /usr/local/lib/ruby/3.3.0/socket.rb:637:in `tcp' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client/ruby_connection.rb:120:in `connect' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client/connection_mixin.rb:11:in `reconnect' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:769:in `block in connect' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client/middlewares.rb:12:in `connect' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:768:in `connect' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:759:in `raw_connection' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:719:in `ensure_connected' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-client-0.25.2/lib/redis_client.rb:314:in `call_v' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/client.rb:90:in `call_v' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/mini_profiler/profiling_methods.rb:90:in `block in profile_method' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis.rb:152:in `block in send_command' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis.rb:151:in `synchronize' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis.rb:151:in `send_command' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/redis-5.4.0/lib/redis/commands/strings.rb:191:in `get' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus/backends/redis.rb:366:in `process_global_backlog' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus/backends/redis.rb:279:in `block in global_subscribe' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus/backends/redis.rb:291:in `global_subscribe' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus.rb:769:in `global_subscribe_thread' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/message_bus-4.4.1/lib/message_bus.rb:740:in `block in new_subscriber_thread' OID לא ידוע 17246: נכשל בזיהוי סוג של 'embeddings'. הוא יטופל כמחרוזת.

יומני Sidekiq ריקים.

אין בעיות ביומני Nginx.

אני רואה בעיית חיבור redis ביומני Unicorn, אך ביומני Redis עצמם אין שגיאות:

9706:C 28 Aug 2025 15:11:25.025 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB 881:M 28 Aug 2025 15:11:25.106 * Background saving terminated with success 881:M 28 Aug 2025 15:16:26.096 * 100 changes in 300 seconds. Saving... 881:M 28 Aug 2025 15:16:26.097 * Background saving started by pid 10037 10037:C 28 Aug 2025 15:16:26.109 * DB saved on disk 10037:C 28 Aug 2025 15:16:26.109 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB 881:M 28 Aug 2025 15:16:26.198 * Background saving terminated with success 881:M 28 Aug 2025 15:21:27.004 * 100 changes in 300 seconds. Saving... 881:M 28 Aug 2025 15:21:27.004 * Background saving started by pid 10365 10365:C 28 Aug 2025 15:21:27.019 * DB saved on disk 10365:C 28 Aug 2025 15:21:27.019 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB 881:M 28 Aug 2025 15:21:27.105 * Background saving terminated with success 881:M 28 Aug 2025 15:26:28.030 * 100 changes in 300 seconds. Saving... 881:M 28 Aug 2025 15:26:28.031 * Background saving started by pid 10703 10703:C 28 Aug 2025 15:26:28.050 * DB saved on disk 10703:C 28 Aug 2025 15:26:28.051 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB 881:M 28 Aug 2025 15:26:28.132 * Background saving terminated with success 881:M 28 Aug 2025 15:31:29.094 * 100 changes in 300 seconds. Saving... 881:M 28 Aug 2025 15:31:29.095 * Background saving started by pid 11028 11028:C 28 Aug 2025 15:31:29.109 * DB saved on disk 11028:C 28 Aug 2025 15:31:29.110 * Fork CoW for RDB: current 1 MB, peak 1 MB, average 0 MB 881:M 28 Aug 2025 15:31:29.196 * Background saving terminated with success

יומני Postgresql אינם מציגים שגיאות.

כיצד אוכל להפעיל אותו?

Sorry. I typed “safe-mode” instead of “safe mode” and didn’t notice that it wasn’t auto-linked.

תודה, זה עזר והפורום עובד (לא כמו שצריך, אבל אני יכול לגשת לנושאים עם הקשר).

עם זאת, הפורום ללא מצב בטוח אינו שמיש, ואני לא זוכר בדיוק אילו תוספים התקנתי. רשימת התוספים אמורה להיות ב-app.yml, אבל השרת מת ויש לי רק גיבוי, שאינו מכיל את app.yml, ככל הידוע לי. מה עלי לעשות כדי לשחזר את הפורום ולהסיר תוספים פגומים?

שחזור ללא שימוש ב-app.yml קיים לא אמור להתקין אף תוסף מלבד אלה המצורפים (שהם כולם רשמיים).

עם זאת, ערכות נושא ורכיבי ערכות נושא כלולים בגיבוי, לכן נסה להשבית אותם.

נסה להשתמש במצב בטוח והשבת רק ערכות נושא ורכיבים כדי לוודא שהבעיות שלך נגרמות על ידי אחד מהם.

2 לייקים

תודה, זה באמת עובד רק בלי ערכות נושא, אבל איפה אני יכול למצוא ערכות נושא? בגיבוי אני רואה רק שני פריטים: dump.sql.gz ותיקיית uploads, שמכילה רק מדיה וקבצים של משתמשים.

אתה יכול פשוט לגשת לנושאים מממשק הניהול. אתה יכול תחילה לבטל את כולם ואז להפעיל אותם אחד אחד (או מה שזה לא יהיה).

לייק 1