完全な開示となりますが、自社ホスト型の Discourse インストールに対しては、非常に長い間、手動でのメンテナンスを行っていません。また、初期設定は別の方が行いました。
SendGrid が基本認証から API キーへの移行を要求したため、SMTP 認証情報の変更が必要となりました。
以下のドキュメントを見つけました:Discourse 向け推奨メールプロバイダー
そこには次のように書かれています:
現在のメールサービスを変更するには、
./discourse-setupも実行してください(これにより、再構築が行われる間、数分間フォーラムがオフラインになります)。
このコマンドを実行し、期待通りに質問に回答したところ、標準出力に約 2,000 行の出力が流れ、最後に以下で終わりました:
Upgrade Complete
----------------
Optimizer statistics are not transferred by pg_upgrade so,
once you start the new server, consider running:
./analyze_new_cluster.sh
Running this script will delete the old cluster's data files:
./delete_old_cluster.sh
-------------------------------------------------------------------------------------
UPGRADE OF POSTGRES COMPLETE
Old 10 database is stored at /shared/postgres_data_old
To complete the upgrade, rebuild again using:
./launcher rebuild app
-------------------------------------------------------------------------------------
cfd4df26701b4b4cd4a4202f30a9c8165a1ba609c921bffc25f250f52fee6cbe
実は、これで何か「アップグレード」が行われるとは思っていませんでした。SMTP 認証情報の変更だけをしたかったのです。しかし、サイトが自動的に復旧しなかったため、指示に従って「アップグレードを完了させる」ために以下を実行しました:
./launcher rebuild app
これにより、標準出力にさらに約 8,000 行の出力が流れ、最終的にサイトは復旧しましたが、外観が以前と異なっています:
- ロゴが欠落し、「Discourse」のロゴに置き換わっています。
- ユーザーのアバター画像が壊れていました。やがてこれらは自動的に復旧しましたが、
- 投稿内の画像やカテゴリのロゴは現在も壊れたままです。
./discourse/shareディレクトリ内および URL が存在を期待している S3 バケット内を確認しましたが、該当するファイル名を持つ画像は見当たりません。 - 「最新」ページから非表示にしていた「サポート」カテゴリの投稿が、再び表示されるようになりました。
- 「カテゴリ」ページから「サポート」カテゴリ自体が消えています。
- 「カテゴリ」ページが 2 列構成になり、左側にカテゴリ、右側に「最新」が表示されるようになりました。以前はカテゴリのリストのみだったと思います。
+ New Topicボタン内の+の色が、白からグレーに変わっています。
この時点で、何らかの設定が失われたのではないかと疑っています。ただし、すべての投稿は無事残っています。Discourse が(どのバージョンからかは不明ですが、おそらく多数のバージョンを跨いで)自身をアップグレードし、それによってデフォルト設定、CSS、テンプレートなどが変更され、上記の問題が発生したのではないかと考えています。
ソースコードを確認したところ、現在のバージョンは 2.6.0.beta6 で、これはわずか 7 日前にリリースされたもののようです。
そこで質問です:
- SMTP 認証情報のような単純な設定変更を行うために、このようにソフトウェアを完全にアップグレードする必要があるのは普通のことでしょうか?
- 全体のソフトウェアをアップグレードせずに、設定を変更したりセキュリティ更新を適用したりする方法はありますか?
- 画像はどこへ行ったのでしょうか?あるいは、なぜ URL が変更され、アクセスできなくなったのでしょうか?
- この出来事以降に投稿された新しいポストを失うことなく、ロールバックする方法はありますか?以前のバージョンが何だったかもわかりません。S3 には Discourse のバックアップ(gzipped 形式の SQL ダンプ)はあります。
+ New Topicボタンの色や、非表示/表示状態の「サポート」カテゴリなど、設定やカスタマイズをすべて手動でやり直す必要があるのでしょうか?
Discourse がホストされている EC2 インスタンスの EBS スナップショットを定期的に取得していたつもりでしたが、実際にはそうではありませんでした。現在はスナップショットを有効化し、必要に応じて将来はそれでロールバックできるようにしました。
よろしくお願いいたします。