目次
変更履歴
変更履歴は、最近の変更キャッシュと、ページごとの変更履歴ファイルに書き込まれます。
最近の変更キャッシュは「/data/meta/_dokuwiki.changes
」に保存され、日々整理されます。ページごとの変更履歴ファイルは「/data/meta/<名前空間>/<ページ ID>.changes
」に保存されます。ページごとの変更履歴ファイルは整理されないため、そのページに対して行われた作成・編集・削除などの編集作業がすべて追跡できるようになっています。
変更履歴ファイルの書式
変更履歴は 1 行 1 エントリのプレーンテキストとして保存されます。変更履歴の各行は以下のようなタブ区切りのフィールドを含んでいます。
<date>\t<ip>\t<type>\t<id>\t<user>\t<sum>\t<extra>\n <date> = Unix タイムスタンプ <ip> = IPv4 アドレスもしくは IPv6 アドレス <type> = ログ行タイプ (次のセクションで説明します) <id> = DokuWiki のページ ID <user> = DokuWiki のユーザー名 (ログイン中のみ) <sum> = 編集の概要もしくは動作理由 <extra> = 任意のタイプのデータ用のフィールド 注意: タブ "\t" と改行 "\n" は含まないようにしてください。
ログ行タイプ
ログ行タイプは、任意の長さの文字列です。ただし、すべての 1 文字の文字列 (「C」や「E」など) は DokuWiki コアのために予約されています。2 文字以上の文字列は、実験的用途やユーザー定義のログ行タイプとして利用できます。なお、ログ行タイプは大文字小文字を区別します。ログ行タイプのマッチは PHP の比較演算子 ===
で行われますので注意してください。
DokuWiki コアで利用するログ行タイプ
以下に、DokuWiki コアで利用するログ行タイプ (<type>
値) を示します。
<type> 値 | 意味 | 備考 |
---|---|---|
C | 作成 (Create) | |
E | 編集 (Edit) | |
e | 小変更 (Minor edit) | 小変更は、ログイン中のユーザーのみ利用できます。 |
D | 削除 (Delete) | ページを削除しても、変更履歴と以前のバージョンは保たれます。 |
R | 復元 (Revert) | 以前のバージョンから編集した場合に利用されます (<extra> フィールドにも追記されます)。 |
ページごとの変更履歴ファイルの保管
「/data/meta
」ディレクトリは削除しないでください。ここに保存されている変更履歴データは他の Wiki データからは作成できません。
最近の変更キャッシュの再作成
もしうっかり「/data/meta/_dokuwiki.changes
」ファイルを削除してしまった場合は、最近の変更のキャッシュを再作成するをご覧ください。
旧バージョンの DokuWiki からの変更履歴のインポート
以下の情報は、あなたが 2006-11-06 以前のバージョンの DokuWiki からアップグレードする場合にのみ影響する情報です。 |
---|
旧バージョンの変更履歴ファイルが存在する場合は、自動的にインポートされます。
注: セーフモードで動作している PHP 上で非常に大規模な Wiki を動作させている場合は、スクリプトが実行可能な時間を延長することができないため、インポート作業中にタイムアウトが発生してしまう可能性があります。もし必要であれば、セーフモード動作ではない PHP が動作している他のサーバでインポート作業を行うことができます。インポート作業を行った後の「/data/meta
」ディレクトリは、セーフモードで動作しているサーバにそのままコピーしても大丈夫です。
注: 更新ペースの非常に遅い Wiki では、「最近の変更」ページを埋めるために、$conf['recent_days']
の設定値をより適切な値に変更するとよいでしょう (デフォルト値は 7 日間です)。
大量の変更履歴のインポートでは、通常の PHP の制限である 8MB 以上のメモリが必要となる場合があります。もしインポートに失敗する場合は、Web サーバのエラーログファイルに “Fatal error: Allowed memory size of 8388608 bytes exhausted” のような PHP エラーが出力されていないかを調査してください。もしこのようなエラーが出力されていた場合は、Web サーバの php.ini ファイルを編集して一時的に PHP のメモリ制限を緩和させてから Web サーバを再起動し、再びインポートを試みてください。
インポート作業の完了確認
URL に直接指定することで実行できる「do=check」アクションは、チェックの一環として、旧バージョンの変更履歴が存在しているかどうか、インポートが作業中なのか完了しているのかを確認し、報告します。もしインポート作業が途中で停止してしまった場合、「do=check」はインポートが完了していないという警告を出力します。この場合は、「/data/meta/_dokuwiki.changes
」ファイルと「/data/meta/_dokuwiki.changes_*
」ファイルを削除して再びインポート作業を行ってみてください。
変更履歴が問題なくインポートできた後でも、「do=check」は旧バージョンの変更履歴が存在することを報告します。これは意図的に出力しているものですので、問題はありません。しかし、もし「do=check」が毎回 “Importoldchangelog plugin not disabled after import” という警告を出力する場合は、プラグイン管理で importoldchangelog プラグインを無効にしてください。