リビジョン機能について

リビジョン機能は、オブジェクトの保存時にデータを複製してバックアップ、もしくは明示的に修正版を作成する機能です。

インストール後の標準モデルでリビジョンに対応しているモデルは以下の通りです。

モデル ラベル 予約差し替え
entry 記事
page ページ
asset アセット
template ビュー -
fieldtype フィールド型 -
question 設問 -
questiontype 設問タイプ -
form フォーム
widget ウィジェット

その他のモデルをリビジョン対応させるには「システムオブジェクト」→「モデル」→対象のモデルの編集画面で、「リビジョン」にチェックを入れて「最大リビジョン数」に数値を指定して保存します。

保存すると以下のカラム が追加されます。

  • rev_type : 自動保存の時「1」リビジョンを作成・編集した時「2」
  • rev_object_id : 対象(複製元)のオブジェクトID
  • rev_changed : 変更されたカラム
  • rev_note : 変更メモ (保存時に入力)
  • rev_diff : 差分

予約差し替えに対応するためには、「リビジョン」「最大リビジョン数」とあわせて「ステータス対応」「有効期限対応」「(ステータスの)初期値」を設定してください。

モデルの編集画面で必要な値をセットします

リビジョン指定のあるモデルのオブジェクトの振る舞い

リビジョン指定のあるモデルでは管理画面上で以下のような振る舞いとなります。

  • 一覧画面に「リビジョンの管理」ボタンが追加される
  • オブジェクトの編集画面に「変更メモ」欄と「リビジョンとして保存」ボタン、リビジョンがある場合は件数とリビジョン一覧画面をダイアログまたは別ウィンドウで開くボタンが追加される
  • 環境変数「allow_revision_in_list」「allow_revision_in_list_モデル名」指定のある時、一覧画面にリビジョンの作成ボタン(リンク)が追加される

編集画面に追加されるUIパーツ

一覧画面に追加されたUIパーツリビジョンの一覧画面(差分表示)

リビジョンをマスタに適用する

編集画面のプレビューボタンの右側「マスタに適用」ボタンをクリックしてください。この時、マスタに適用後のオブジェクトのステータスは、マスタのステータスと同じになることに注意してください。

リビジョンの差し替え予約を行う

マスタのステータスを「公開予約」にして、差し替え日の日付と時刻を「公開日」にセットします。公開日を過ぎてスケジュールされたタスクが実行されたタイミングで差し変わります。

環境変数で利用可能なその他の機能

update_rev_created指定のある時マスタがアップデートされていることをアラート表示

  • update_rev_created : リビジョン作成後にマスタが更新されている時、リビジョン編集画面にメッセージを出す ※自動保存されたものを除く (初期値 false)
  • leave_revisions : オブジェクト削除時にリビジョンを残す (初期値 false)

自動保存リビジョンの生成タイミング

オブジェクト保存時、データに差分がある場合にデータを複製しバックアップとして「自動保存リビジョン」が作成されます。

自動保存リビジョンが作成される操作。

  • 一覧画面からのアクションでタグの追加、タグの削除
  • 一覧画面で検索、その後アクションで「置換」
  • CSV インポート機能によるデータの上書き
  • HTMLImporter プラグインによる同一 URL の上書きインポート
  • テーマを再適用した時 ( ビューのリビジョンが生成される )
  • その他、一部のプラグインで既存のオブジェクトを自動で更新するケース

差分チェック対象外のカラム

以下のカラムは差分チェックの対象外です。差分チェックの対象外のカラムのみ変更して保存した場合は、自動保存リビジョンは生成されません。

  • cache_key
  • compiled
  • created_by
  • created_on
  • id
  • last_compiled
  • modified_by
  • modified_on
  • password
  • previous_owner
  • published_on
  • rev_changed
  • rev_diff
  • rev_note
  • rev_object_id
  • rev_type
  • status
  • text_format
  • user_id
  • uuid