Wagby EE のアップグレード

最終更新日: 2024年7月31日

Wagby EEのバージョンアップを行う

重要

本ドキュメントは、R7.x から R7.y, R8.x から R8.y, R9.x から R9.y へのバージョンアップ方法について記載しています。R6 から R8 へのバージョンアップは別途、リポジトリの移行ツールを利用します。[詳細...]

Wagbyのバージョンアップに際しては、次の手順を行ってください。(同じバージョンの Wagby を使って再ビルドする場合、この手順はスキップして、次節へ進みます。)

1. リポジトリのバックアップ

現行システムのリポジトリのバックアップを取得します。wrb_ ではじまる zip ファイルとなります。これをダウンロードし、任意の作業用フォルダに保持しておきます。

2. 現行システムの停止

現行バージョンの Designer ならびにビルドしたアプリケーションを停止します。

3. 新しいWagbyのインストール

1台の開発機に、複数のバージョンのWagbyをインストールすることができます。フォルダ名をそれぞれ変えてインストールします。(例 Wagby-9.0.0 と Wagby-9.0.4)

ご購入者の方は、インストール後に開発者キットのライセンスキーを適用してください。複数のバージョンのWagbyに同じライセンスキーを適用できます。

Unlimited Team をご利用の場合、WagbyDesigner にログオンできるユーザ情報を新しい Wagby へ移してください。[詳細...]

4. リストア(リポジトリの復元)

新バージョンの Wagby Desinger を起動します。1. で取得したリポジトリを読み込みます。

読み込み後、「リストア」ボタンで復元します。

ワンポイント

復元処理のタイミングで、自動的に新バージョン向けリポジトリへ移行されます。

重要

ご注意ください:旧版の repository フォルダをそのまま新版の repository フォルダへコピー(または移動)することはできません。必ず wrb_ で始まるバックアップファイルを作成し、上記のリストア処理で復元してください。

リポジトリ移行時の詳細なルール

バージョンごとにルールが定められています。詳細はこちらをお読みください。

5. フルビルド

新版のDesignerを起動します。ブラウザのキャッシュをクリアしてからDesignerにログオンし、フルビルドを行ってください。

できあがったアプリケーションを「新システム」と呼びます。次節で、入れ替えの手順を説明します。

ブラウザのキャッシュクリアは何のため?

バージョンアップによってDesignerに同梱されているJavaScriptファイルが更新されています。新しいファイルを強制的に読み込ませるため、キャッシュクリアを行なってください。古いファイルを読み込んでしまうと、画面に "undefined" という文字が表示されるといった不具合が生じる場合があります。

運用中の Web アプリケーションを更新する

本番運用サーバで、現行システムから新システムへの入れ替えを行う手順を説明します。新システムはフルビルドによって生成されたものとします。具体的な入れ替え手順は次の通りです。

  1. 現行システムを停止します。
  2. 現行システムに含まれているすべてのデータをエクスポートします。
  3. 現行システムのフォルダ名を変更します。(例:wagbyappをwagbyapp.oldとする)
  4. 新システムをサーバへコピーします。
  5. 新システムへ、2. でエクスポートしたデータをインポートします。
  6. 新システムへ、現行システムの関連ファイルを引き継ぎます。
  7. 現行システムのライセンスキーを新システムへコピーします。
  8. 新システムを起動します。
  9. 新システムへの接続を確認します。

以下、詳細を説明します。

1. 現行システムを停止する

Windowsサービスへ登録している場合は、Windows の [管理ツール] から停止し、サービスを削除して下さい。 Windowsサービスに登録していない場合は wagbyapp\bin\shutdown.bat を実行して下さい。

2. 現行システムに含まれているすべてのデータをエクスポートする

次のケースに1つでも該当する場合、本手順を行って下さい。

  • Wagbyのバージョンアップを行った。
  • モデル定義の変更(モデルの追加/削除、あるいは、モデル項目の追加/削除)が発生した。
  • データ権限設定を変更した。
  • 内蔵データベースを利用している。
外部データベースを用いており、モデル定義の変更がない、そして同じバージョンのWagbyを使っているという場合は本手順をスキップできます。

エクスポートはコマンドラインでの操作を行ってください。

  1. コマンドプロンプトを開きます。
  2. wagbyapp フォルダに含まれる bin フォルダに移動します。"cd C:\Wagby-8.0.0\wagbyapp\bin"
  3. export_db.bat を実行します。引数に出力先のフォルダを指定します。フォルダ名は「data_」を接頭語とし、年月日時分秒の情報を続けます。"export_db.bat ..\..\export\data_20180301090000" これは複数の data_ フォルダがあった場合、区別できるようにするための工夫です。実際には data_ 以下の文字列は半角英数字で任意に指定できます。
  4. 外部データベースを利用している場合、drop_db.bat コマンドを使ってテーブルの削除処理を行います。(入れ替え後、新しくテーブル作成を行うためです。)
  5. コマンドプロンプトを終了します。
Wagbyアプリケーションの管理処理メニューから、Web画面でエクスポートしてもいい? 可能です。ただデータ量が多い場合、処理中にブラウザが "通信が発生しない(実際にはサーバからの応答を待っているが、長時間の場合、通信エラーと誤判断されることもある)" と解釈してセッションタイムアウトになることがあります。そのためコマンドラインでの操作を推奨しています。

drop_dbを行う前に

drop_db.bat を使うと現時点のデータとテーブルが全削除されます。これはWagbyアプリケーションの入れ替えに必要な手順ですが、入れ替えに失敗した場合に速やかに元に戻せるよう、データベースが提供するバックアップツールを使って、データベースの物理ファイルをバックアップすることを推奨します。

3. 現行システムのフォルダ名を変更する

現行システムのフォルダ名「wagbyapp」を「wagbyapp.old」に変更して下さい。 「wagbyapp.old」がすでにある場合は、「wagbyapp.old20180301」のように重複しないフォルダ名を使用して下さい。

ここで現行システムのフォルダを削除しないのは、万が一新システムに不具合があった場合、速やかに旧システムに戻せるようにするためです。

4. 新システムを本番運用サーバへコピーする

ビルドした新システムをサーバマシンへコピーします。旧システムと同じフォルダ名にしてください。これによって Apache や IIS と連携していた場合でも、同じ環境を引き継いで利用できます。

5. 新システムへデータをインポートする

「2. 現行システムに含まれているすべてのデータをエクスポートする」を行なった場合は以下の手順を実行して下さい。

  1. コマンドプロンプトを開きます。
  2. wagbyapp フォルダに含まれる bin フォルダに移動します。"cd C:\Wagby-8.0.0\wagbyapp\bin"
  3. import_db.bat を実行します。引数に(取り込みたいデータが格納されている)フォルダ名を指定します。"import_db.bat ..\..\export\data_20180301090000"
  4. コマンドプロンプトを終了します。

import_dbでエラーが発生する

2.の手順で「外部データベースを利用している場合、drop_db.bat コマンドを使ってテーブルの削除処理」を行わないと、入れ替え後の新テーブル作成でエラーになります。この手順を行ったかどうかを確認してください。

6. 現行システムの関連ファイルを引き継ぐ

ファイル型項目

「ファイル型」項目に対してアップロードを行ったファイルは、現行システムの upload_dir フォルダ以下に保存されています。同フォルダ以下を新システムに移動(またはコピー)します。

スキーママイグレーション

スキーママイグレーション機能を使っている場合、現行システムのWagbyインストールフォルダ直下に migratedb フォルダが用意されています。これを新システムにコピーします。

7. ライセンスキーの適用

プロジェクトライセンスの場合

現行システムの「ライセンスキーファイル」を、新システムにコピーしてください。ライセンスキーファイルは wagbyapp\webapps\$(APPNAME)\WEB-INF\classes にある appschema-licensekey.xml です。

注意

これは同じサーバを使う場合です。サーバ機を変えた場合は、ライセンスキーは新規取得となります。

無制限開発ライセンスの場合

この手順は不要です。次へ進みます。

8. 新システムを起動する

Windowsサービスとして起動する場合は、Windows サービスの登録を行い、Windows管理ツールから起動して下さい。

そうでない場合はwagbyapp\bin\startup.batを実行して下さい。

9. 接続確認を行う

Web ブラウザから所定のアドレスを入力します。特定のアカウントでログオンし、メニューが表示されることを確認して下さい。

ログオン処理に失敗する場合は、データベース接続が失敗している可能性があります。いったん新システムを停止したのち、wagbyapp/logs フォルダの system.log を開き、エラーメッセージが含まれていないか、確認してください。

利用者PCのブラウザのキャッシュクリアも行った方がいい?

バージョンアップによってwagbyappに同梱されているJavaScriptファイルが更新されています。常に新しいJavaScriptを読み込むようにつくられていますが、ブラウザが古いファイル(キャッシュ)を使うと正しく動作しません。そのため、バージョンアップ後は利用者PCのブラウザのキャッシュクリアも行うことを推奨します。それでも動作がおかしい場合、キャッシュクリアとは別に、"SHIFT" + "リロード" で、強制的なページ再読み込みを行うことも効果があります。

データのインポート処理が必要かどうかの判断について

次の設計情報の変更は、テーブル定義に影響を与えることがあります。

  • グループ権限管理の設定。
  • 参照連動項目を更新する設定。
  • 必須チェック。
  • 入力項目の種類の設定をテキストエリアにする。
  • 一意制約チェックの設定。

これらの設定変更(設定の解除を含む)を行った場合、テーブル定義が変更されます。この場合はデータのエクスポートとインポート処理が必要になります。

もっと詳しく

現在の稼働環境のwagbyapp\webapps\$(APPNAME)\WEB-INF\export\conf\createddl と、バージョンアップ版でビルドした後の wagbyapp の同フォルダ内のファイルに差分があるかどうかをご確認ください。差分がなければテーブルをそのまま利用できます。

注意

バージョンアップでは、Wagby本体に同梱されるシステム系のテーブルに変更が生じている場合があります。この場合は、当該テーブルのみを対象にデータをエクスポートし、テーブルの再作成(dropとcreate)を行ったあとデータのインポートを行うとよいでしょう。

変更のあったテーブルのみインポート、エクスポートする

export_db.bat や import_db.bat は全てのテーブルを対象とします。これらのコマンドの実体は InitLoader.jar というものです。InitLoader.jar を直接操作することで、テーブルを限定した操作を行うことができます。

システムテーブルの変更を手動で対応する

システムテーブルの変更履歴をまとめています。 この内容に沿って、手動でデータベースのテーブルを変更することもできます。この場合は旧データのエクスポートおよびインポート処理(上の手順の「2.現行システムに含まれているすべてのデータをエクスポートする」と「5.新システムへデータをインポートする」を省略することができます。

モデルを追加した場合の手順

新しいモデルを追加した場合、データ復元の考え方は次の通りです。

選択肢モデルを含まない

新システムに対して、現行システムでバックアップ(export)したデータを復元(import)します。importコマンドによって、追加モデルのテーブルも用意されます。

新システムに対応した create table 文が実行される、ということです。これには追加したモデルも含まれます。

選択肢モデルを含む

  1. 新システムに対して、現行システムでバックアップ(export)したデータを復元(import)する。
  2. 新システムを起動し、システム管理者(admin)でログオンする。
  3. 管理処理のインポートエクスポート画面を開く。
  4. インポートフォルダ名を"data_init"とし、追加した選択肢モデルをチェックボックスで指定し、インポートを行う。

1. で、現行システムから復元したデータには、追加した選択肢モデルの初期値が含まれていません。そこで追加分については、初期データ (data_init) フォルダを指定して、個別にインポートを行います。このタイミングでテーブルも作成されます。

上の説明では画面操作によるモデル指定としましたが、コマンドライン操作も行えます。InitLoader.jar の import コマンドで、個別にテーブルを指定することができます。