Discourseへのバックアップ復元時の問題

Can't restore a backup if it includes link to Discourse onebox で言及されている問題のように聞こえます :anxious_face_with_sweat:

リストア中に修正できるはずですが、シェルで実行する必要があります。

cd /var/discourse
./launcher enter app

# --pause 引数付きでリストアを開始します
discourse restore --pause <backup_filename>

リストアプロセスは 2 つの時点で一時停止します。

  1. DB マイグレーションが実行される前 – これは無視して、キーを押して続行してください。
  2. アップロードがリストアされる前。アップロードが原因でリストアが中止される前に、修正できる、変更されていない uploads テーブルにアクセスできます。

次に、別の SSH セッションでサーバーに接続し、レールコンソールを開始します。

cd /var/discourse
./launcher enter app

rails c

リストアを失敗させる原因となっている Post を特定する必要があります。運が良ければ、レールコンソールで以下を実行することで見つけることができます。

current_db = RailsMultisite::ConnectionManagement.current_db
cdn_path = SiteSetting.cdn_path("/uploads/#{current_db}/original").sub(/https?:/, "")
Post.where("cooked LIKE '%#{cdn_path}%'")
「いいね!」 7