[Sitecore][Publishing]パブリッシングのメモ書き
よくパブリッシュの違いについて聞かれたことがあります。今日パブリッシュについて簡単にメモ書きとして書きます。
パブリッシュモード
1. インクリメンタルパブリッシュ(PublishMode.Incremental)
速度:
ロジック:パブリッシング·キューからターゲットのデーターベースへパブリッシュ
メモ:CMSユーザー·インタフェースをにて行った変更やコードでの変更なが発生する倍、その変更がパブリッシング·キューへ追加されます。ワークフローに関連付けられたアイテムが最終的なワークフローの状態に到達したときにそれらが発行キューに追加される。インクリメンタルパブリッシュはターゲットのデーターバースへ適切なバージョンをコピーします。SQLのdbo.PublishQueueテーブルにてまた、サイトコアロックを使っている場合はツール→パブリッシング→パブリッシング·キューにて一覧を見れます。
2. スマートパブリッシュ(PublishMode.Smart)
速度:
ロジック:マースターデーターベースとターゲットのデーターベースの比較
メモ:マースターデーターベースとターゲットのデーターベースの比較して、変更したアイテムのみパブリッシュします。Sitecoreのアイテムは、内部リビジョン識別子があります。アイテムに変更があった場合、それは更新され、スマートパブリッシュはこの内部リビジョン識別子を比較して、変更したアイテムのみパブリッシュ
3. りパブリッシュ(Publish.Full)
速度:
ロジック:マースターデーターベースからターゲットのデーターベースへと比較せず、パブリッシュします。ターゲット·データベース内のすべてのアイテムが上書きされます。
メモ:マースターデーターベースからターゲットのデーターベースへと比較せず、パブリッシュするので一番時間が掛かります。.マスターデータベースのバックアップからの復元や、通常のパブリッシュが正常に終了しない場合使います。
知ると便利なツール: アドバンスパブリッシュダイアログ, また [詳細とビデオデモ(英語)]
多数の編集者が同時に作業をする際によくパブリッシュが途中で止まってしますことがあります。Apppoolのリセットをしたりしざるえない時があります。その際にこのアドバンスパブリッシュダイアログが便利です。実行中のパブリッシュのタスクをキャンセルすることができます。
余談ですが、この前これをみて、サイトコア7.2から関連するアイテムをパブリッシュのオプションがあります。
手元の二つのプロジェクトはいまだに6.6ですので、この機能は待つ扱えないけど、これはサイトコアロックのアイテムと依存するアイテムのパブリッシュと同じ機能かどうはは不明です。時間を探して、両方を比較してみたいです。
いずれにせよ、これまでの経験からこの機能は本当に便利だと思うのは下記ケースです。
1. 例えばアイテムに関連付けられていたもの、(レイアウト、sublayouts、テンプレート)をパブリッシュするのを忘れてもかまいません。
2.イベントの使用で例えばOnsaveイベントで関連するアイテムを事前パブリッシュしなくでもよい。
3.インポートの作業で、関連されている、リフェレンスアイテムを事前パブリッシュしなくでもよい。