Sitecore Express Migration Toolを使ってみた

samatsu 9/13/2016 2010 N/A Sitecore Tools

Sitecoreのバージョン移行を支援するためにリリースされた Express Migration Tool 1.0 Initial Releaseを使ってみました。簡単な使い方の手順をご紹介したいと思います。

1.そもそもExpress Migration Tool とは

最初に、このツールの目的を簡単に記載します。 このツールは、Sitecore 7.2からSitecore 8.2 Initial Release 環境へのコンテンツを移行(Migration)を行うデスクトップアプリケーションです。デスクトップアプリケーションですがインストールは不要です。

Express Migration Tool 1.0 Initial Release では Sitecore 7.2のInitial Releaseを含むすべてのUpdateバージョンのコンテンツをSitecore 8.2の環境に移行することができます。コンテンツアイテムや、ファイルを移行するだけでなく、移行元のconfigファイルと移行先のconfigの差分をチェックしてSitecore用のパッチファイルや差分情報をまとめたdiffファイルを自動生成してくれます。

移行という言葉が重要で、既存環境をアップグレード(インプレースアップグレード) するのではなく、既存の環境には変更を加えずに、既存の環境のコンテンツを別に構築したSitecore 8.2の環境に移行してくれます。

Initial Release では、コンテンツの移行のみでAnalyticsデータやアドオンが作成するデータなどはこのツールでは移行できません。将来的に移行できる範囲、Sitecoreのバージョンは変わる可能性があります。

DMSのデータを移行する方法やアドオンモジュールがインストールされている環境での移行方法については、Express Migration Tool Guide を参考にしてください。

2. ツールと使い方(Guide)のダウンロード

Initial Release はここのDownloadsセクションからリンクをクリックしてダウンロードすることができます。ツールのインストール要件や使い方のドキュメントも同ページのRelease InformationセクションのExpress Migration Tool Guideのリンクをクリックしてダウンロードできます。Guideにはツールが動作するために必要なソフトウェアやハードウェア要件および詳細な使い方の情報が記載されています。様々なインストレーション環境を考慮した詳細なツールの使い方を確認したい場合は Express Migration Tool Guideを見るようにしてください。

ちなみにInitial Releaseで .NET 4.5.2 以降が必要です。

3.実際に使ってみる

単一マシン上に Sitecore 7.2 Update-2 および、 Sitecore 8.2 Initial Releaseをインストールした環境でExpress Migration Toolを使ってみました。Stecore 8.2 Initail Releaseはクリーンインストールしただけの環境です。

ダウンロードしたツール(記事作成時点でSitecore Express Migration Tool 1.0 rev. 160811.zip)を展開します。(インストールされている .NET Frameworkのバージョン番号の確認方法は、https://msdn.microsoft.com/ja-jp/library/hh925568(v=vs.110).aspx を参照。)

3.1 構成の変更

App_Config\Default.configを開いて、DBへの接続に失敗したときにリトライ回数やリトライまでの間隔を変更できます。また、Default.configのfilterConfiguratorセクションで移行時に無視するフォルダやファイルも指定できます。詳細は、Guideの"Configuraing and running"の章を参照してください。デフォルトではリトライ間隔は3秒、リトライ回数は5回です。

3.2 Migration Toolの起動

Sitecore.ExpressMigration.exe をダブルクリックしてSitecore Express Migration Toolを起動します。下図の画面が表示されます。基本的に画面の項目を入力して Next ボタンをクリックしていけば、ウィザード形式で移行を実施できます。

StartタブののProcessingサブタブで、移行元と移行先の情報を記載してください。Sourceグループボックスに移行元のWebsiteフォルダや、core,masterへの接続文字列、Sitecoreバージョンを指定します。 Targetグループボックスに移行先の情報を同様に記載します。すべて入力したら[Next]をクリックします。

ツールが動作するマシンと、Sitecoreが動作するマシンが異なる場合は、Windowsのファイル共有を有効にして、UNC形式でWebsiteフォルダへのパスを指定します。

Additional parametersサブタブが表示されます。ここで、移行する対象を選択できます。core,masterデータベースのアイテムおよびWebsite上のファイル,configファイルだけでなく、アカウントも以降できます。CMサーバーの場合はすべて選択し、CDサーバーを移行する場合は、Files,Configuratoin filesのみ選択するのが典型的なパターンだと思います。 [Next]をクリックします。

Analysisサブタブが表示され、設定情報に従ってデフォルトの状態からの変更部分の解析が行われます。

解析が成功すると SELECTIONタブに移動します。Core,Master,Filesで移行対象になるアイテムを確認できます。デフォルトで選択された移行対象が適切ではない場合は、この画面で移行対象に含めたり、除外することができます。

移行対象として選択されるアイテムやファイル、除外されるアイテムの基準については前述したGuideの3.1.1Running the Express Migration ToolセクションのSelecting the items to migrateの部分を参照してください。アドオンモジュールに関するアイテムを除外したい場合はここで移行対象から除外できます。

簡単にいうと、コンテンツアイテム(/sitecore/content/配下のアイテム)や開発者が定義したカスタムのデータテンプレート、サブレイアウトの定義アイテムなど独自に定義したアイテムは移行対象になります。Sitecoreをインストールしたときにデフォルトで存在するテンプレートアイテムや設定アイテムなど定義アイテムは移行対象としてチェックされません。

Sitecore Express Migration ToolはSitecore 7.2のすべてのバージョンに対するデフォルトの状態に関するメタデータを持っているので、そのメタデータとSourceで指定されたSitecoreの環境を比較して、変更が発生しているアイテムや新規に作成または削除されたアイテムを判定しています。

選択が終わったら[Next]ボタンをクリックします。

手のFilesサブタブで[Next]ボタンをクリックすると、マイグレーション(移行)が行われます。

移行が成功すると、下図の画面が表示されます。migration report リンクをクリックすると、移行処理のレポート(htmlファイル)の場所がエクスプローラーで表示されます。

Finishボタンでプログラムを終了します。

以上でコンテンツの以降は完了です。

驚くほど簡単にコンテンツの移行が完了します。

移行元の環境のconfigファイル(Web.configや、App_Config、App_Config/Include配下)は、ターゲット環境のconfigファイルと比較されて、差分情報のファイルがWebsite\Migration.MigratedConfigurationフォルダに作成されます。

Web.configの<sitecore>セクション以外の場所はパッチファイルを作成できないので、下図のように web.diff.config.disabledという名前で Web.configファイルの差分個所が抽出されます。

例えば、diffファイルの中身は次のようになります。差分情報を見ながら、必要に応じて移行先のWeb.configに手動でマージします。

App_ConfigやApp_Config/Include フォルダの configに関しては、同名のconfigファイルが移行先にも存在する場合は、同名のファイルと異なる部分を適用するためのSitecoreのパッチファイルがXXXX.patch.config.disabledという名前で作成されます。diffファイルと異なり、差分の個所が<sitecore>セクション内なのでパッチファイルとして作成されています。作成された内容を手動でマージするか、Includeフォルダ配下にconfigファイルを移動してパッチファイルとして変更箇所を適用します。

移行元ファイルのWeb.configの<sitecore>セクションの差分情報に関してはsitecore.section.patch.config.disabledという名前でApp_Configファイルに作成されます。これは移行先の環境のSitecore.configの<sitecore>セクションにパッチを適用するためのパッチファイルとなります。(Sitecore 8.2では、<sitecore>セクションはApp_Config/Sitecore.config に格納されています。)

生成される XXXXX.patch.config.disabled ファイルの中身は例えば次のようなパッチファイルです。

最後に、移行先にない、パッチファイルに関しては、単純に YYYYY.config.disabled という名前で無効化された状態でパッチファイルが配置ます。もし、移行先のバージョンで廃止された設定をパッチしようとしているファイルの場合、ファイルの中に、新しいバージョンで設定が変更された旨の説明がコメントで記載されている場合があります。

3.3 後処理

Sitecore Express Migration Toolで移行が完了したらそれで終わりではありません。ツールのガイドに記載されている Chapter4 Post-migration steps に従って後処理を行います。

例えば、作成されたdiffやパッチファイル(configファイル)を移行先の環境に必要に応じて適用します。

プログラムをリビルドし移行先にデプロイします。当然ですが、binフォルダーは移行対象から除外されているので、カスタムプログラムのdllを移行先に配置する必要があります。(binフォルダーを移行すると移行先の環境のdllが旧バージョンのものになってしまいます!)

また、ガイドのインストラクションに従い、コントロールパネルを起動して、データベースのクリーンナップ、リンクデータベースのリビルド、インデックスのリビルドを行い、スマートパブリッシュも実施します。

詳細な手順や、CM,CDが複数ある環境でのツールを使うシナリオや、アナリティクスデータを移行する、アドオンモジュールが存在する環境で移行する場合のシナリオについてはExpress Migration Tool Guideの方をご確認ください。