小沢仁
標準のLiferayプラットフォームは決まられた手順に従ってアップグレードすることができます。拡張環境(extension environment)を使ってカスタマイズされている場合は、Liferay6からのExtプラグインに移行する必要がありますのでもう少し複雑になります。特に新LiferayバージョンでAPIが変わっている場合は、コードを修正する必もあります。但し、開発者であれば、割と簡単にコードを移行できるはずです。ポートレットプラグインは一般的にはJava標準に準拠して作成されているため、下位互換のはずです。Portlet 1.0(JSR-168)及びPortlet 2.0(JSR-286)の仕様は下位互換になるように作成されています。テーマプラグインで最新の機能を利用する場合は、少し修正が必要になります。出来る限り容易にアップグレードできるように努力をしていますが、修正が必要な場合もあります。アップグレードを行う際に拡張環境(extension environment)は特に複雑であります。Extプラグインにアップグレードした後に充分にテストを行ってください。
基本的には、大きなリビジョンから次の大きなリビジョンまでアップグレードすることができます。例えば、Liferay 5.1.xから5.2.xへアップグレードすることはできますが、5.1.xから6.0.xはできません。離れているリリースにアップグレードする必要がある場合は、次のリリースへのアップグレードを段階的に繰り返す必要があります。小リビジョン(例:4.3.5から4.3.6、4.4.0から4.4.1など)のバージョンアップは不要です。繰り返しリビジョンアップする場合は、最後の大きなリビジョンを利用することを推奨します。
Liferayは、新リビジョンのLiferayソフトウエアをセットアップした後に、初めてデータベースに接続すると、データベースの変更が必要か判断して、必要な場合は新リビジョンのテーブル形式に変更します。この処理を行うために、データベーステーブルを作成、削除、更新(create、drop、update)する権限が必要です。Liferayが利用するユーザにこれらの権限が与えられていることを確認してください。 Liferayをデータベースに初めて接続して起動する前に必ずバックアップを取ってください。万一、アップグレード中にエラーが発生した場合は、バックアップから復旧してください。
ヒント:Liferay 4.3.0以前からアップグレードする場合は、手動でSQLスクリプトを実行する必要があります。Liferay 4.1.xから4.2.xにアップグレードする場合は、LiferayのソースコードのSQLフォルダに同梱されているSQLスクリプトを実行してください。
**標準インストール**されたLiferay5.xをLiferay6にアップグレードするには、次のステップを実行してください(7cogs.com、ファイル/画像ライブラリの利用など、標準インストールで無い場合は、この手順では正常に移行できません):
これでLiferayはアップグレードされました。離れた旧バージョンのLiferayからアップグレードする場合は、類似した処理を繰り返してください。Liferayが最新バージョンにアップグレードされたことを確認した後に、必要なプラグインをインストールしてください。
最後に、最新バージョンのportal.propertiesを調べて、新機能の設定をportal-ext.propertiesに追加してください。
次は、特定のバージョンからのアップグレードの説明です:
最新版の6.xを利用してください。事前の小リビジョンで発見されたアップグレード中のエラーは最新版で対応されています。
5.2.3 CEより以前のリビジョンを利用されている場合は、先ず5.2.3にアップルグレードすることを推奨します。
Liferay 6.0からは認証アルゴリズム6に変わりました。アルゴリズム6は、Liferayポータルの部品を利用する度に行う認証で行うクエリー回数を減らし、抜本的な性能改善を行っています。 Liferay 6は、標準でアルゴリズム6を利用するように設定されています。新規導入の場合はこの設定で問題はありませんが、アップグレードする場合は旧アルゴリズムとテーブル構成が異なるために設定を変更する必要があります。バージョン5からアップグレードする場合は、初めてデータベースに接続してLiferay 6を実行する前に、アルゴリズムテーブルがまだ5であることを知らせる必要があります。アルゴリズム5でLiferay6を起動して、問題がなければテーブル構成を6に変換します。テーブルがアルゴリズム5であることを知らせるためには、以下のプロパティをportal-ext.propertiesに記述してください:
permissions.user.check.algorithm=5
テーブル構成がまだアルゴリズム5であることを知らせます。この設定をportal-ext.propertiesファイルに追加した後にLiferay 6を起動して、データベースをアップグレードしてください。データベースのアップグレードが完了して、Liferayが起動したら、ページ及びポートレットがが正常に表示/動作されるか確認をしてください。アルゴリズム5を継続して利用することもできますが、性能改善を行う場合はテーブルをコントロールパネルからアルゴリズム6に移植してください。
アルゴリズム6にアップグレードするばあいは、管理者としてログインして、メニューから「処理」-「コントロールパネル」-「サーバ管理」を選択してください。表示される「サーバ管理」ページの「データ移行」を選択すると、ページ下に項目「旧認証方式をバージョンアップする」が表示されているはずです。
. 図115:データベーステーブルをアルゴリズム5からアルゴリズム6へアップグレードするページ。
注:アルゴリズム5と6はユーザ毎に権限は設定できません。ユーザ毎に権限を設定された場合は、「ロールを生成」をチェックしてください。チェックされると、ユーザ個人に設定された権限をもつロールを作成して、そのロールをユーザに設定します。ユーザ毎に権限を設定されたユーザが多い場合は、生成されたロールを整理することを推奨します。「ロールを生成」をチェックしないと、ユーザ毎に設定された権限は破棄されます。
テーブルをアルゴリズム6にアップグレードする場合は「実行」ボタンを選択してくだしあ。
Liferay 6.0からはExt環境は存在しません。その代わりにextプラグイン機能が新規に追加されました。Liferay本体の基本ソースコードをExt環境で修正した場合は、Extプラグインの方がより便利に使えることが分かると思います。開発者はデプロイ/変更管理をより少ない時間で行うことができます。また、1つのSDKでLiferayの開発を行えるようになったため、より簡単に開発を行えるようになりました。
Extように開発されたソースコードを使う前に、Ext環境をExtプラグインに移行する必要があります。Liferay5.2より古いバージョンを利用されていた場合は、先ずExt環境をLiferay 5.2にアップグレードする必要があります。バージョン5.2より前のバージョンのExt環境では正常にアップグレードできません。
Ext環境をExtプラグインに変換するには、プラグインSDKのExtフォルダにあるbuild.xmlファイルを使います。このスクリプトを実行すると、プラグインSDKに含まれているext.zipのExtプラグインのシェルを作成して、既存のExt環境をデフォルトExtプラグインに統合します。
スクリプトの文法は次の通りです: ant upgrade-ext -Dext.dir={既存Ext環境へのパス} -Dext.name={新プラグイン名} -Dext.display.name="{新プラグインのフレンドリー名}"
スクリプトを実行すると、指定されたフォルダが作成され、Ext環境とデフォルト.zipファイルを統合した内容が収められます。Extプラグインからサービス及びSQLコードを再生成できるように、build-service (Service Builder)とbuild-db (DB Builder)はExtプラグインに移植されます。但し、ExtプラグインのService Builderは廃止予定されています。カスタムサービスはポートレットプラグインに移植してください。カスタムサービスをプーとレットプログインに移植することを推奨します。
最新の5.2.3にアップグレードするようにしてください。
5.1以前のバージョンを利用されている場合は、先ず5.1 SEにアップグレードしてください。
* 従来のプロパティを利用するデフォルト値が変わっているプロパティもあります。プロパティを継続的に利用する場合は、実行コマンド(Tomcatの場合はstart.bat/start.sh、JBossの場合はrun.conf.bat/run.conf)と同じフォルダにある環境設定コマンド(Tomcatの場合はsetenv.bat/setenv.sh、JBossの場合はrun.conf.bat/run.conf)のset "JAVA_OPTS=%JAVA_OPTS%..."に次のパラメータを追加してください。 -Dexternal-properties=portal-legacy-5.1.properties
旧バージョン用のportal-legacy-x.x.propertiesファイルはLiferayソースコードの次のフォルダにあります: liferay-portal-src-6.0.5\portal-impl\src
以下はportal-legacy-5.1.propertiesの内容です。
resource.repositories.root=${user.home}/liferay theme.portlet.sharing.default=true organizations.country.required[regular]=true organizations.assignment.auto=true organizations.assignment.strict=false organizations.membership.strict=true lucene.dir=${resource.repositories.root}/lucene/ jcr.jackrabbit.repository.root=${resource.repositories.root}/jackrabbit discussion.thread.view=combination dl.hook.impl=com.liferay.documentlibrary.util.JCRHook dl.hook.file.system.root.dir=${resource.repositories.root}/document_library
データベース接続とメール設定の値が変わったことに注意してください。