上限数を超過した更新履歴(リビジョン)データを診断・削除する
Movable Type を長期間利用している環境では、記事やコンテンツデータの更新履歴(リビジョン)が増加し、肥大化の要因になっている場合があります。
例えば、デフォルトでは更新履歴は 20 件に設定されておりますが、1000 件の記事で 20 件の更新履歴が存在し、記事のデータが各 20 KB 程度である場合、1000 x 20 x 20 = 400,000 KB(約 400 MB)のデータがデータベースに蓄積されていることになります。
更新履歴の保存件数の上限をデフォルトの 20 件より小さく設定することは可能ですが、すでに作成された更新履歴は削除されずに残ることになります。
上記例の場合、更新履歴の保存件数の上限を 10 件に変更すると、変更して以降は各記事ごとに 10 件の中で履歴更新がおこなわれますが、上限を超えた残りの 10 件は削除されないため、更新履歴のデータサイズが 400 MB から減ることはありません。
更新履歴が肥大化すると、Movable Type のアップグレードなどの処理の際に、タイムアウトを引き起こし、アップグレードが失敗する要因のひとつになります。
このスクリプト(tools ディレクトリ内の reduce-revisions)を利用することで、現時点で設定されている上限数を超えて保存されている更新履歴がデータベースに存在しないか診断し、確認された場合には対象のデータを削除することができます。
必要環境
- Movable Type 7 r.5001 / 6.8.1 以上のバージョン(reduce-revisions はこのバージョンからパッケージに同梱しています)
- Perl スクリプトを実行できるコマンドライン環境
利用方法
コマンドライン上で、サイトの ID を指定して reduce-revisions を実行することで、上限値を超えて存在する更新履歴がないか診断します。
オプションを指定することで、超過分の更新履歴の削除や、スクリプトのヘルプの表示ができます。
オプション
--blog_id(省略形: -b)
対象サイトの ID を指定します。指定しなかった場合は全サイトが対象になります。
--delete(省略形: -d)
現時点で設定されている上限数を超えて保存されている更新履歴データの削除を実行します。
--help(省略形: -h)
本スクリプトのヘルプを表示します。
実行例
cd /path/to/movabletype
./tools/reduce-revisions --blog_id=3 --delete
注意点
- 必ずデータベースのバックアップをおこなってから実行してください。
本スクリプトに関するテクニカルサポートは提供しておりません。
サポート対応はありませんが、不具合報告などのレポートがありましたらテクニカルサポートまでお知らせください。
Movable Type クラウド版ではこのスクリプトを利用することはできません。