Ubuntu 16
何度も行ったようにWebのアップグレードをクリックしましたが、今回は失敗し、サポートされていないDockerバージョンでアプリが再構築できなくなりました。
何かアイデアはありますか?OSをアップグレードしようかとも思いましたが、今日は時間がなかったです。
元に戻す方法はありますか?
古いハッシュにバージョンを設定してみましたが、再構築しようとした途端、直ちにサポートされていないDockerバージョンになってしまいます。
Ubuntu 16
何度も行ったようにWebのアップグレードをクリックしましたが、今回は失敗し、サポートされていないDockerバージョンでアプリが再構築できなくなりました。
何かアイデアはありますか?OSをアップグレードしようかとも思いましたが、今日は時間がなかったです。
元に戻す方法はありますか?
古いハッシュにバージョンを設定してみましたが、再構築しようとした途端、直ちにサポートされていないDockerバージョンになってしまいます。
アップグレードできません。
新しい仮想マシンに移動して、そこにデータベースを復元する方が良いです。より簡単で、ダウンタイムも少なくて済みますし、何か問題が起きても、正常に動作しているサーバーを使い続けることができます。
ああ。すみません。十分に注意深く読まなかったです。
いいえ。戻ることはできません。
Dockerのインストールを使用している場合は、Dockerをアップグレードできるかもしれません。
私はOSをアップグレードしたり、PostgreSQL 15のアップグレードを経て、今はアプリの再構築を行うと次のエラーが出ます。
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 **
プラグインの初期化中にこのエラーが発生し、Discourseを起動できません:
PG::UndefinedColumn: ERROR: column "require_message" does not exist
LINE 1: ..._key, description, notify_type, auto_action_type, require_me...
^
Postアップグレード後に再構築を実行した後の状況です。
アップグレード作業
------------------
新しいクラスタ内の全行を分析しています OK
新しいクラスタ内の全行を凍結しています OK
新しいpg_xactのファイルを削除しています OK
古いpg_xactを新しいサーバーにコピーしています OK
古いクラスタの最も古いXIDを設定しています OK
次のトランザクションIDとエポックを設定しています OK
新しいpg_multixact/offsetsのファイルを削除 OK
古いpg_multixact/offsetsを新しいサーバーにコピーしています OK
古いpg_multixact/membersのファイルを削除しています OK
古いpg_multixact/membersを新しいサーバーにコピーしています OK
次のmultixact IDとオフセットを新しいクラスタに設定しています OK
WALアーカイブをリセットしています OK
新しいクラスタのfrozenxidとminmxidカウンタを設定しています OK
グローバルオブジェクトを新しいクラスタに復元しています OK
データベーススキーマを新しいクラスタに復元しています OK
リレーションファイルをコピーしています OK
次のOIDを新しいクラスタに設定しています OK
データディレクトリを同期しています OK
古いクラスタを削除するスクリプトを作成しています OK
拡張機能の更新を確認しています 注意
拡張機能の中にはALTER EXTENSIONコマンドを使って更新すべきものがあります。
このファイル
update_extensions.sql
をpsqlで実行することでこれらの拡張機能は更新されます。
アップグレードは完了しました
----------------
オプティマイザの統計情報は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
何ができるでしょうか?この列が欠損しているのはどうしてだかわかりません。
はい。同様の問題に関するトピックがいくつかあります。移行が元に戻されたため、おそらく不完全な状態になっています。
手動で列を追加してみてはどうでしょうか。
それをどうやって行うのか、具体的にはどのテーブルなどに関してなのかよく分かりません。それについての情報が見つかるでしょうか。あなたが言及した投稿は見つけましたが、詳細な情報はありませんでした。
ありがとうございます!
データベースをマウントできる程度にすらならないので、プラグインをすべて無効にしてみて、少なくともコンテナを起動できるか試してみます。
修正方法は以下のとおりです(心臓の弱い方には向きません)。
RELEASE_UPGRADER_ALLOW_THIRD_PARTY=1 do-release-upgrade
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# リポジトリをAptソースに追加します:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
./launcher rebuild app
./launcher rebuild app
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 **
プラグインの初期化中にこのエラーが発生したため、Discourseを起動できません。
PG::UndefinedColumn: ERROR: column "require_message" does not exist
LINE 1: ..._key, description, notify_type, auto_action_type, require_me...
^
./launcher enter app
rails db
ActiveRecord::Base.connection.execute("ALTER TABLE flags ADD COLUMN require_message BOOLEAN DEFAULT FALSE;")
exit
exit
@pfaffman、週末にもかかわらず迅速な対応ありがとうございました。新しい更新されたドロップレットを作成して移行する予定です。これはWebインターフェースからの迅速なインプレースアップグレードになるはずでした。しかし、スクリプトはDockerの互換性をテストしていないようです。DiscourseがDockerをアップグレードしたときに、互換性のないDockerエラーが発生しました。
Ubuntu 16のような古いバージョンに留まっていたのは完全に私たちのせいでした。安定したシステムの長所と短所の1つは、それが長期間維持される傾向があることです。
うまくいったようでよかったです!素晴らしいですね!
OSがEOLを4年以上過ぎている場合、迅速なアップデートはできませんよ。![]()
はい、教訓を得ました。再度ありがとうございます!
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.