Troubleshooting Upgrades
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

Gogo Shell を使用したモジュールのアップグレード

特定のモジュールのアップグレードに関する問題をトラブルシューティングするには、一括ではなくモジュールごとにアップグレードをテストして実行する必要がある場合があります。 Liferay には、個々のモジュールをアップグレードおよび検証するための Gogo シェル コマンドがあります。

たとえば、モジュールには新しい データ スキーマ マイクロ バージョンがある場合があります。 これは新しいマイクロバージョンに過ぎないため、モジュール データを新しいスキーマにアップグレードすることはオプションです。 新しいモジュール バージョンをデプロイすると、アクティブ化されますが、データはアップグレードされません。 モジュールを新しいデータ スキーマにアップグレードする場合は、Gogo Shell で アップグレード コマンドを使用できます。

ただし、データをアップグレードせずに、新しい データ スキーマ マイナー/メジャー バージョン を持つモジュールをデプロイすると、モジュールは非アクティブ化されます。 新しいモジュール バージョンをアクティブ化するには、モジュールのデータを新しいデータ スキーマにアップグレードする必要があります。

モジュールのアップグレードに関するトピックは次のとおりです。

コマンドの使用法

モジュールのアップグレードおよび検証コマンドを実行するには、 Gogo Shell ポートレット を使用します。

コマンドは次のとおりです。

コマンドDescription
終了 または 終了Gogoシェルを終了します
upgrade:helpアップグレードコマンドを表示します
upgrade:check過去に失敗したか、モジュールが最終バージョンに達していないために実行が保留中のアップグレードを一覧表示します。
upgrade:execute [module_name]そのモジュールのアップグレードを実行します
upgrade:executeAll保留中のすべてのモジュールアップグレードプロセスを実行します
upgrade:list登録されているすべてのアップグレードを一覧表示します
upgrade:list [module_name]モジュールの必要なアップグレード手順を一覧表示します
upgrade:list \| grep Registered登録済みのアップグレードとそのバージョンを一覧表示します
verify:help検証コマンドを表示します
verify:check [module_name]モジュールの検証プロセスの最新の実行結果を一覧表示します
verify:checkAllすべての検証プロセスの最新の実行結果を一覧表示します
verify:execute [module_name]モジュールの検証を実行する
verify:executeAllすべての検証者を実行する
verify:list登録されている検証者をすべて一覧表示します

次に、各モジュールのアップグレードの可用性を確認します。

アップグレード準備が整ったモジュールの一覧

依存関係が満たされると、モジュールはアップグレードの準備が整います。 準備完了のモジュールを一覧表示する Gogo シェル コマンドと、モジュールの未解決の依存関係を一覧表示するコマンドがあります。

upgrade:list Gogo シェル コマンドは、アップグレードの依存関係が満たされているモジュールを一覧表示します。 これらのモジュールはアップグレード可能です。

モジュールがアクティブであるがリストされていない場合は、その依存関係をアップグレードする必要があります。

モジュールの依存関係のトラブルシューティング

未解決の依存関係を見つけるための Gogo シェル コマンドがあり、それらを修正してモジュールをアップグレードの準備をすることができます。 Gogoシェルコマンドscr:info [upgrade_step_class_qualified_name]は、アップグレードステップクラスの満たされていない依存関係を示します。 以下は scr:infoコマンドの例です。

scr:info com.liferay.journal.upgrade.JournalServiceUpgrade

モジュールのアップグレード手順 (クラス) は順番に解決する必要があります。 upgrade:list [module_name]を呼び出すと、モジュールのすべてのアップグレードステップが一覧表示されます。 たとえば、upgrade:list com.liferay.bookmarks.service(ブックマークサービスモジュールの場合)を実行すると、次のように表示されます。

Registered upgrade processes for com.liferay.bookmarks.service 1.0.0
        {fromSchemaVersionString=0.0.0, toSchemaVersionString=1.0.0, upgradeStep=com.liferay.portal.spring.extender.internal.context.ModuleApplicationContextExtender$ModuleApplicationContextExtension$1@6e9691da}
        {fromSchemaVersionString=0.0.1, toSchemaVersionString=1.0.0-step-3, upgradeStep=com.liferay.bookmarks.upgrade.v1_0_0.UpgradePortletId@5f41b7ee}
        {fromSchemaVersionString=1.0.0-step-1, toSchemaVersionString=1.0.0, upgradeStep=com.liferay.bookmarks.upgrade.v1_0_0.UpgradePortletSettings@53929b1d}
        {fromSchemaVersionString=1.0.0-step-2, toSchemaVersionString=1.0.0-step-1, upgradeStep=com.liferay.bookmarks.upgrade.v1_0_0.UpgradeLastPublishDate@3e05b7c8}
        {fromSchemaVersionString=1.0.0-step-3, toSchemaVersionString=1.0.0-step-2, upgradeStep=com.liferay.bookmarks.upgrade.v1_0_0.UpgradeClassNames@6964cb47}

通常、アプリケーションのアップグレード ステップ クラス名からその意図が明らかになります。 たとえば、例の com.liferay.bookmarks.upgrade.v1_0_0.UpgradePortletId アップグレード ステップ クラスは、アプリのポートレット ID を更新します。 他のサンプルのアップグレード ステップ クラスでは、クラス名、 LastPublishDateおよび PortletSettingsが更新されます。 この例では、 0.0.0 から 1.0.0 へのステップで、モジュールを空のデータベースからアップグレードします。

モジュールのアップグレード プロセスをより詳しく調べるには、リストされているアップグレード手順を頭の中で、またはテキスト エディターで並べ替えることができます。 ブックマークサービスモジュールをLiferay Portal 6.2(モジュールのデータベースが存在)からスキーマバージョン 1.0.0にアップグレードするためのアップグレード手順の順序は次のとおりです。

  • 0.0.1 から 1.0.0-step-3
  • 0.0.1-step-3 から 1.0.0-step-2
  • 0.0.1-step-2 から 1.0.0-step-1
  • 0.0.1-step-1 から 1.0.0

全体的なモジュールのアップグレード プロセスはバージョン 0.0.1 から始まり、バージョン 1.0.0で終了します。 最初のステップは初期バージョン (0.0.1) から始まり、ターゲット バージョンの最上位ステップ (ステップ 3) で終了します。 最後のステップは、ターゲット バージョンの最低ステップ (ステップ -1) から開始され、ターゲット バージョン (1.0.0) で終了します。

モジュールのアップグレード プロセスを理解すれば、自信を持って実行できます。

モジュールのアップグレードの実行

upgrade:execute [module_name]を実行すると、モジュールがアップグレードされます。 解決しなければならないアップグレード エラーが発生する可能性があります。 コマンドを再度実行すると、最後に成功した手順からアップグレードが開始されます。

upgrade:list [module_name]を実行すると、アップグレードステータスを確認できます。 たとえば、 upgrade:list com.liferay.iframe.web と入力すると、次のように出力されます。

Registered upgrade processes for com.liferay.iframe.web 0.0.1
   {fromSchemaVersionString=0.0.1, toSchemaVersionString=1.0.0, upgradeStep=com.liferay.iframe.web.upgrade.IFrameWebUpgrade$1@1537752d}

最初の行には、モジュールの名前と現在のバージョンがリストされます。 サンプルモジュールの現在のバージョンは 0.0.1です。 toSchemaVersionString 値はターゲット バージョンです。

正常にアップグレードした後、モジュールでupgrade:list [module_name]を実行すると、モジュールの名前に続いてターゲットバージョンが表示されます。

たとえば、 com.liferay.iframe.web をバージョン 1.0.0に正常にアップグレードした場合、 upgrade:list com.liferay.iframe.web を実行すると、モジュールのバージョンが 1.0.0であることが示されます。

Registered upgrade processes for com.liferay.iframe.web 1.0.0
   {fromSchemaVersionString=0.0.1, toSchemaVersionString=1.0.0, upgradeStep=com.liferay.iframe.web.upgrade.IFrameWebUpgrade$1@1537752d}

完了しないモジュールのアップグレードについては、ステータスを確認し、問題を解決できます。

アップグレードステータスの確認

コマンド upgrade:check は、差し迫ったアップグレードが必要なモジュールを一覧表示します。

たとえば、モジュールcom.liferay.dynamic.data.mapping.service1.0.0-step-2というラベルの付いたステップで失敗した場合、upgrade:checkを実行すると次のように表示されます。

Would upgrade com.liferay.dynamic.data.mapping.service from 1.0.0-step-2 to
1.0.0 and its dependent modules

多くの場合、モジュールはアップグレードを完了するために他のモジュールに依存します。 scr:info [upgrade_step_class_qualified_name]を実行すると、アップグレードステップクラスの依存関係が表示されます。 まず、モジュールが依存するモジュールをアップグレードする必要があります。

モジュールを解決してアクティブ化するには、そのアップグレードを完了する必要があります。 Apache Felix Dependency Manager Gogo シェル コマンド dm wtf は、未解決の依存関係を明らかにします。 モジュールが特定のデータ スキーマ バージョンを必要とする場合 (たとえば、 bnd.bndLiferay-Require-SchemaVersion: 1.0.2を指定している)、モジュールがそのバージョンへのアップグレードを完了していない場合は、 dm wtf はスキーマ バージョンが登録されていないことを示します。

1 missing dependencies found.
-------------------------------------
The following service(s) are missing:
 * com.liferay.portal.kernel.model.Release (&(release.bundle.symbolic.name=com.liferay.journal.service)(release.schema.version=1.0.2)) is not found in the service registry

dm wtf コマンドは、ポートレット定義とカスタム ポートレット schemaVersion フィールドのエラーを検出するのにも役立ちます。

リリーステーブルの確認

各モジュールには 1 つの Release_ テーブル レコードがあり、その schemaVersion フィールドの値は 1.0.0 以上である必要があります。 1.0.0 は、以前はバージョン 6.2 以前を対象とした従来のプラグインであったものを除く、Liferay DXP モジュールの初期バージョンです。

検証プロセスの実行

一部のモジュールには検証プロセスがあります。 これにより、アップグレードが正常に実行されたことが確認されます。 Liferay DXP をアップグレードした後、コア内のプロセスが自動的に実行されることを確認します。 verify.* ポータル プロパティ を構成してサーバーを再起動することでも実行できます。

利用可能な検証プロセスを確認するには、Gogo シェル コマンド verify:listを入力します。 検証プロセスを実行するには、verify:execute [verify_qualified_name]と入力します。