Umbraco 4.0.x から 4.5.x へのアップグレード

Umbraco 4.0.x を 4.5.x にアップグレードの作業を行いました。以下はその際のメモです。

4.5.x では、xslt が変更されているので、4.0.x をアップグレードした場合に動作しなくなる場合がある。xslt を利用している場合は、xlt を4.5.x 形式に書き換えるか、config フォルダーにある umbracoSettings.config ファイルで、<UseLegacyXmlSchema> を true に設定して、旧形式のものを使用するかしないといけない。また、パッケージを利用している場合は、パッケージが 4.5.x に対応しているかどうか、また対応は xslt が新形式なのか旧形式なのかを確認して、UseLegacyXmlSchema をどちらに設定するかを決める。

1.既存のサイトのすべてのファイルとデータベースをバックアップする。できればローカルでアップグレードのテストをしておくのがよい。特に、パッケージ や xslt を使用している場合は、正常に動作するかどうかテストしておくと安心である。

2.Umbraco 4.5.x を CodePlex のダウンロードサイトからダウンロードする。解凍するときには、エクスプローラ以外の解凍ツールを使用するか、エクスプローラを使用する場合には、プロパティで「ブロックの解除」ボタンをクリックしてから「展開」する。App_Browsers, App_Data, bin, config, install, umbraco, umbraco_client のフォルダーのファイルを上書きアップロードする。なお、App_Data については、今回から新たに追加されたフォルダである。

3.Web.config ファイルについては、大きく変更されているので 4.5.x のものを使用する。旧のWeb.config ファイルの <appSettings> セクション等で設定している内容を新の Web.config にコピーする。

4.4.5.x では、パスワードの保存形式が既定で Hashed になっている。4.0.x で Hashed 形式を使用していない場合は、<membership>セクションで、passwordFormat="Hashed" を passwordFormat="Clear" に変更する。アップグレード後、管理画面にパスワードエラーでログインできない場合は、これが原因である場合が多い。

5.xslt で旧形式を使用する場合は、umbracoSettings.config ファイルで、<UseLegacyXmlSchema> を true に設定する。

6.web.config ファイルをアップロードして、ブラウザで Umbraco をインストールした URL にアクセスすると、アップグレードのウィザードが起動する。インストールの時とほぼ同じ画面で操作は簡単である。

7.アップグレード後は、キャッシュの関係で画面が表示されない。管理画面の Content で各ページの Property 画面を見ると Link to document が空白になっていてアップグレードに失敗したのでないかと思っていしまうが、キャッシュがうまくいっていないだけなので、管理画面でコンテンツ(Content)の再発行(Republish entire site 下図を参考)を行うと解決する。Umbraco 4.5.x では、App_Data フォルダーの umbraco.config にキャッシュされているので、umbraco.config を削除して、再発行すればうまくいくケースもある。
upgrade01

参考にしたページ

Upgrading an umbraco installation

Upgrading to Umbraco 4.5

Upgrading Umbraco 4.0.x to 4.5.x