התקנתי מחדש את מערכת ההפעלה וכן התקדם עם שדרוג PostgreSQL 15, אך עכשיו כשאני מבצע בנייה מחדש של היישום, אני מקבל
2025-05-18 14:58:28.208 UTC [1455] discourse@discourse שגיאה: עמודה "require_message" לא קיימת בשורה 72
2025-05-18 14:58:28.208 UTC [1455] discourse@discourse הצהרת SQL: SELECT id, name, name_key, description, notify_type, auto_action_type, require_message, applies_to, position, enabled, score_type FROM "flags" ORDER BY "flags"."position" ASC
** כשל בתוסף **
לא ניתן להתחיל את דיסקורז עקב שגיאה זו באתחול התוסף:
PG::UndefinedColumn: שגיאה: עמודה "require_message" לא קיימת
שורה 1: ..._key, description, notify_type, auto_action_type, require_me...
^
לאחר שרציתי לבנות מחדש (לאחר שדרוג PostgreSQL)
ביצוע עדכון
------------------
ניתוח כל השורות בקלסטר החדש בסדר
קיפאון של כל השורות בקלסטר החדש בסדר
מחיקת קבצים מ-pg_xact החדש בסדר
העתקת pg_xact הישן לשרת החדש בסדר
הגדרת ה-XID העתיק לקלסטר החדש בסדר
קביעת מזהי טרנזקציה ואפוך הבאים לקלסטר החדש בסדר
מחיקת קבצים מ-pg_multixact/offsets החדש בסדר
העתקת pg_multixact/offsets הישן לשרת החדש בסדר
מחיקת קבצים מ-pg_multixact/members החדש בסדר
העתקת pg_multixact/members הישן לשרת החדש בסדר
הגדרת ה-multixact הבא ומיקום ה-offset לקלסטר החדש בסדר
אפס שרשרת WAL בסדר
הגדרת frozenxid ו-minmxid בטרנזקציה בקלסטר החדש בסדר
שחזור אובייקטים גלובליים בקלסטר החדש בסדר
שחזור תרשימים של מסד הנתונים בקלסטר החדש בסדר
העתקת קבצי יחס משתמשים בסדר
הגדרת ה-OID הבא לקלסטר החדש בסדר
סינכרון נתונים לדיסק בסדר
יצירת סקריפט למחיקת הקלסטר הישן בסדר
בדיקת עדכוני הרחבות התראה
ההתקנה שלך מכילה הרחבות שיש לעדכן באמצעות פקודת ALTER EXTENSION. הקובץ
update_extensions.sql
כאשר תפעיל ב-pgSQL, עדכונים אלה יבוצעו.
השלמת שדרוג
----------------
סטטיסטיקות האופטימיזציה לא מועברות על ידי pg_upgrade.
לאחר שתפעיל את השרת החדש, מומלץ להריץ:
/usr/lib/postgresql/15/bin/vacuumdb --all --analyze-in-stages
הרצת סקריפט זה תמחוק את קבצי הנתונים של הקלסטר הישן:
./delete_old_cluster.sh
-------------------------------------------------------------------------------------
שדרוג PostgreSQL הושלם
המסד הישן 13 נשמר ב- /shared/postgres_data_old
להשלמת השדרוג, בצע בנייה מחדש באמצעות:
./launcher rebuild app
יש דבר שאני יכול לעשות? אני לא בטוח איך זה נעדר עמודה.
5.This will upgrade your postgress from 13 to 15 see:
6. Once the Db upgraded successfully ran
./launcher rebuild app
This yielded an error about missing column
2025-05-18 14:58:28.208 UTC [1455] discourse@discourse ERROR: column "require_message" does not exist at character 72
2025-05-18 14:58:28.208 UTC [1455] discourse@discourse STATEMENT: SELECT id, name, name_key, description, notify_type, auto_action_type, require_message, applies_to, position, enabled, score_type FROM "flags" ORDER BY "flags"."position" ASC
** PLUGIN FAILURE **
You are unable to start Discourse due to this error during plugin
initialization:
PG::UndefinedColumn: ERROR: column "require_message" does not exist
LINE 1: ..._key, description, notify_type, auto_action_type, require_me...
^
At this point there is no way to get the container started, so I went to app.yml and disabled all plugins then ran rebuild again
The app finally rebuilt, then I was able to enter the rails console to add the above column manually.
./launcher enter app
rails db
ActiveRecord::Base.connection.execute("ALTER TABLE flags ADD COLUMN require_message BOOLEAN DEFAULT FALSE;")
exit
exit
Once the column was present went back i to app.yml and enabled all plugins and did a rebuild again
Rebuild succeeded … and we are up!
Thank you @pfaffman for your prompt response on the weekend no less. We are going to make a new updated droplet and move over. This was suposed to be a quick inplace upgrade from the web interface. But I guess the script doesn’t test docker compatibility. When it upgraded discourse docker then it threw incompatible docker error.
This was fully our fault for saying in such an old version of Ubunutu 16, one of the good and bad things about a stable system is that it tends to linger.