データのインポート・エクスポート処理をコマンドライン操作で行うことができます。

ビルドしたアプリケーション wagbyapp の bin フォルダに、次のコマンドが含まれています。これらは実行可能スクリプトとして提供されます。

コマンド(スクリプト)名 用途 引数 利用例
init_db テーブルの初期化 モデル名(英語) init_db.bat
init_db.bat staff
drop_db テーブル定義の削除 モデル名(英語) drop_db.bat
drop_db.bat staff
export_db データのエクスポート エクスポート対象フォルダ export_db.bat ..\..\export\YOURFORLDER
import_db テーブルの作成とデータのインポート (*) インポート対象フォルダ import_db.bat ..\..\export\YOURFORLDER
import_db はテーブルの作成も同時に行います。そのため import_db を使う場合は、init_db は不要です。
Windows OS 利用時、このバッチファイルを(ファイルエクスプローラから)ダブルクリックして実行することはできません。コマンドライン引数として「対象フォルダ」を指定する必要があるためです。

コマンドを実行するときのカレントフォルダ

各コマンドは wagbyapp\bin フォルダに用意されています。 コマンドを実行する場合、カレントフォルダを wagbyapp\bin としてください。

Windows OS の場合、コマンドプロンプトから cd コマンドを使ってカレントフォルダを移動します。

cd $(wagbyappフォルダ)\bin

init_db コマンドは、テーブルの初期化を行います。 具体的には、wagbyapp\webapps\wagby\WEB-INF\export\init フォルダに含まれているデータをインポートします。

このコマンドは、すでにテーブルが存在する場合は、処理をスキップします。 そのため、通常は最初に drop_db コマンドを実行し、そのあと init_db コマンドを実行します。

実行方法

Windows OS の場合:

drop_db.bat
init_db.bat

Linux OS の場合:

drop_db.sh
init_db.sh
sh スクリプトに実行権限が付与されていない場合、事前に OS コマンドで実行権を付与してください。(操作方法は割愛します。別途、Linux OS のコマンド解説をお読みください。)

対象モデルを指定する

コマンドライン引数にモデルIDを指定することができます。複数のモデルIDを指定する場合は、空白で区切ります。

init_db staff
モデルIDを省略した場合は、すべてのモデルが対象となります。

drop_db コマンドは、テーブルの削除を行います。 具体的には、データベースに対して drop table 命令を実行します。

実行方法

Windows OS の場合:

drop_db.bat

Linux OS の場合:

drop_db.sh

対象モデルを指定する

コマンドライン引数にモデルIDを指定することができます。複数のモデルIDを指定する場合は、空白で区切ります。

init_db staff
モデルIDを省略した場合は、すべてのモデルが対象となります。

export_db コマンドは、テーブルの内容を XML 形式ファイルで出力します。

export_db.bat [出力先フォルダ]

出力先フォルダは省略できます。省略時のフォルダ名は「..\..\export\data_"出力した時間(年月日時分秒)"」となります。

import_db コマンドは、テーブルの作成ならびに、エクスポートされた XML 形式ファイルを読み込み、データベースに格納します。

import_db.bat [読み込むデータが格納されているフォルダ]

入力例

import_db.bat ..\..\export\data_sample

対象データが大量の場合、標準のメモリサイズでは足りずに「Out Of Memory」(メモリ不足)というエラーになることがあります。 この場合は、上記スクリプトファイルをテキストエディタで編集します。次に示す斜字の部分を修正してください。

@ECHO OFF
...
"%JAVA_HOME%\bin\java" -Xmx512m -XX:MaxPermSize=192m -Dcatalina.home=".." -Djava.io.tmpdir="${catalina.home}\temp" -jar InitLoader.jar auto %TARGET% -check_exists_table true -c ..\webapps\wagby\WEB-INF\export\conf\initdb.xml  -d ..\webapps\wagby\WEB-INF\export

-Xmx の初期値は 512m (512メガバイト) となっています。処理が成功する値になるよう、この値を増やします。

Wagbyのインポート・エクスポート処理は、「1つのXMLファイル」を「(データベースの)1レコード」として扱い、データベースとのやりとりを行います。

具体的な XML ファイルは次のようになっています。

<?xml version="1.0" encoding="UTF-8"?>
<staff>
  <staffid>1000</staffid>
  <name>山田 花子</name>
  <birth>1972-05-15</birth>
</staff>
XMLの要素名はリポジトリの「モデルID」および「項目ID」が使われます。

XMLファイル編集時の注意

XML ファイルを編集する場合、Windows に付属の「メモ帳」はご利用になれませんので、ご注意ください。

Wagby が読み込む XML ファイルの文字エンコーディングは UTF-8 で、バイト順マーク(BOM) を含めてはいけません。メモ帳は UTF-8 で書かれたファイルを保存すると必ずバイト順マーク(BOM) を付与するようになっています。このため、メモ帳で編集・保存された XML ファイルは Wagby で処理するときにエラーになります。

内蔵データベース利用時は、wagbyapp アプリケーションを停止してから(ここに紹介した)コマンドを実行してください。