これは私の過去24時間の非常に簡潔な投稿ですが、実際にはまだ機能していないため、どこで間違ったのかを誰かが下に投稿してくれることを願っています。
私のDiscourseのアップデートは、重複キーが原因で失敗しました。私のタグの1つが重複しています。アップデートの問題を解決するために、Discourseをクリーンインストールしてから最新のバックアップをロードする必要がありましたが、重複キーについてエラーが発生するため、ロードが失敗します。そのため、バックアップの内部に入って、問題のあるタグを別のものに変更する必要がありました。
何らかの理由で、重複タグの問題が修正された再圧縮バックアップは、元のバックアップよりも大幅に小さくなり、リストアしようとすると失敗するため、再圧縮プロセスで何かがうまくいかなかったようです。
1) バックアップの場所: Discourseのバックアップを見つけるには、次のコマンドを使用できます。
sudo find / -name "*.tar.gz"
これにより、システム全体で拡張子が「.tar.gz」のすべてのバックアップファイルが検索されます。デフォルトでは、コンテナ内の shared/backups/default にあるはずです。
2) コピーの作成: 作業したいバックアップを見つけたら、元のファイルのバックアップを確実に保持するために、そのコピーを作成します。「cp」コマンドを使用します。
bash
sudo cp /path/to/original_backup.tar.gz /path/to/copy_backup.tar.gz
3) コピーの展開: 「tar」コマンドを使用して、コピーされたバックアップファイルの内容を展開します。
bash
tar -xzvf /path/to/copy_backup.tar.gz
これにより、バックアップファイルが一時ディレクトリに展開されます。
4) データベース内のタグの編集: 展開されたバックアップファイルに移動し、テキストエディタを使用して関連するデータベースファイルを開きます。重複する「socialmedia」タグの問題に遭遇し、それが正常なリストアを妨げました。大きなデータベースにはタグのインスタンスがたくさんあり、検索している特定のタグも同様である可能性が高いため、「immutable socialmedia」をNanoでCtrl Wを使用して検索したところ、すぐにその場所にたどり着きました。
sudo nano /path/to/extracted_database.sql
「socialmedia」タグのインスタンスを1つ「socialmedia2」に変更し、その後、それが現在1回だけ表示されることを確認するために簡単な検索を行いました。リストアが成功したら、管理セクションからこれらのタグを修正できます。
5) 再圧縮: バックアップファイルを編集した後、修正されたコンテンツで新しいバックアップファイルを作成します。次のコマンドを使用して、変更されたファイルを圧縮します。
tar -czvf /path/to/new_modified_backup.tar.gz /path/to/modified_files_directory
6) 正しいファイルへの移動: 新しい変更されたバックアップファイルを、バックアップが保存されている適切なディレクトリに移動します。デフォルトの場所は通常「/shared/backups/default」です。
sudo mv /path/to/new_modified_backup.tar.gz /shared/backups/default/
7) サービスの停止と開始: 変更されたバックアップをリストアする前に、リストアプロセス中の潜在的な競合を回避するために、関連するサービスを停止していることを確認してください。Discourseアプリケーションを停止するには、「./launcher stop app」コマンドを使用します。
./launcher stop app
8) バックアップのリストア: 変更されたバックアップからリストアするには、「discourse restore」コマンドと新しいバックアップファイルへのパスを使用します。
discourse restore /shared/backups/default/new_modified_backup.tar.gz
または、サイトの /admin を介して行うこともできます。バックアップセクションに表示されるはずです。
9) リストアの検証: リストアプロセスが完了した後、Discourseアプリケーションとデータベースを確認して、重複する「socialmedia」タグが削除されたことを確認することで、変更が成功したことを検証しました。
10) サービスの開始: Discourseアプリケーションをオンラインに戻すために、以前に停止したサービスを再起動しました。Discourseアプリケーションを開始するには、「./launcher start app」コマンドを使用しました。
./launcher start app
11) 一時ファイルと追加バックアップの削除: バックアップのリストアが成功した後、ディスク容量を解放するために、プロセス中に作成された一時ファイルと追加バックアップを削除しました。ファイルを削除するには、「rm」コマンドを使用します。
sudo rm -r /path/to/temporary_directory
sudo rm /path/to/copy_backup.tar.gz
