SQL を利用し、ページの完全な履歴を削除する方法
プラットフォームについて: Data Center - この記事は、Data Center プラットフォームのアトラシアン製品に適用されます。
このナレッジベース記事は製品の Data Center バージョン用に作成されています。Data Center 固有ではない機能の Data Center ナレッジベースは、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。サーバー*製品のサポートは 2024 年 2 月 15 日に終了しました。サーバー製品を利用している場合は、アトラシアンのサーバー製品のサポート終了のお知らせページにて移行オプションをご確認ください。
*Fisheye および Crucible は除く
In some cases, you may want to delete the whole history of a page. There is currently a feature request ( CONF-27701 - Getting issue details... STATUS ) for more options when administering a page's history. Please feel free to add you feedback and vote for it if you are interested in this functionality
ソリューション
データベースの操作方法が不明な場合はデータベース管理者にお問い合わせください。先に進む前にデータベースの完全なバックアップを作成するようにしてください。これらの SQL コマンドはいくつかの環境でテストされ、意図するように動作することが確認されています。しかしながら、特定の状況や Confluence の新しいバージョンでは動作しない場合があります。これは、Confluence のデータベース構造に変更が行われている可能性があるためです。このため、問題が発生して巻き戻しを行う必要がある場合に備えたデータベース バックアップは必須です。
これらのクエリは次の場合にのみ動作します。
- ページのタイトルが過去のバージョンを通じて変更されていない。
- Confluence インスタンス内に同じタイトルを持つページがほかに存在しない。
ページの履歴を削除するためのプロセスは次のとおりです。
データベースの変更を行う場合は必ず事前にバックアップを取得してください。可能な場合は、まずステージング サーバーで SQL コマンドの変更、挿入、更新、または削除を行うようにします。
- Confluence を終了します。
- データを復元する必要がある場合に備えてデータベースをバックアップします。
Confluence データベースで次の SQL クエリを実行します。
DELETE FROM extrnlnks WHERE contentid in (SELECT contentid FROM content WHERE title = 'Page Title' AND prevver IS NOT NULL); DELETE FROM bodycontent WHERE contentid in (SELECT contentid FROM content WHERE title = 'Page Title' AND prevver IS NOT NULL); DELETE FROM contentproperties where contentid in (SELECT contentid FROM content WHERE title = 'Remove my History' AND prevver IS NOT NULL); DELETE FROM usercontent_relation where targetcontentid in (SELECT contentid FROM content WHERE title = 'Remove my History' AND prevver IS NOT NULL); DELETE FROM content WHERE title = 'Page Title' AND prevver IS NOT NULL; UPDATE content SET version = 1 WHERE title = 'Page Title';
Confluence を起動します。
- 検索インデックスを再構築します。
- [Confluence 管理] > [キャッシュ統計] に移動し、ページ下部の [すべてをフラッシュ] をクリックします。