提供されるスクリプト
最終更新日: 2023年2月27日
ビルドしたアプリケーションであるwagbyapp/binフォルダに用意されています。
コマンドの結果は同一フォルダ内の check_db.txt に出力されます。同ファイルの内容をチェックしエラーが発生していないことを確認してください。
接続テストが成功すれば check_db.txt 内に次のようなデータベース及びJDBCドライバの情報が出力されます。
ビルドしたアプリケーションであるwagbyapp/binフォルダに用意されています。
コマンドが正常に実行されると、次のように表示されます。
内蔵データベース利用時は、ビルド処理の一環として本スクリプトが実行されます。そのためビルドの都度、データは初期化されます。外部データベース利用時は、本処理は手動で行います。
ビルドしたアプリケーションであるwagbyapp/binフォルダに用意されています。
出力先は $(APPHOME)/export フォルダ以下になります。
Windows OS 利用時、このバッチファイルを(ファイルエクスプローラから)ダブルクリックして実行することはできません。コマンドライン引数として「対象フォルダ」を指定する必要があるためです。
ビルドしたアプリケーションであるwagbyapp/binフォルダに用意されています。
$(APPHOME)/binフォルダに用意されています。
Windows OS 利用時、このバッチファイルを(ファイルエクスプローラから)ダブルクリックして実行することはできません。コマンドライン引数として「対象フォルダ」を指定する必要があるためです。
migrate_db コマンドは、スキーママイグレーション機能を提供します。
現在、稼働しているデータベースのテーブル定義(旧)と、入れ替えようとしているアプリケーション wagbyapp に含まれるテーブル定義(新)の差分をとり、差を埋めるための SQL (alter table 命令) を発行します。つまり migrate_db コマンドを使うことで、テーブル定義の変更作業を自動的に行います。
"環境 > データベース > メイン > 環境" の "列にデフォルト値を設定する" を有効にしてください。(サブデータベースでも利用する場合、同様にサブデータベースの "列にデフォルト値を設定する" を有効にしてください。)
R8.4.x からバージョンアップした場合、本設定を有効にしてビルドすると、既存のテーブル定義が変更されます。[詳細...]
migrate_db は本番環境で実行します。
wagbyapp/bin フォルダに含まれる init_db.bat を実行します。このタイミングでデータベースにテーブルが作成されます。
(すでにテーブル定義がある場合は、この手順をスキップしてください。)
wagbyapp/bin フォルダに含まれる migrate_db.bat を実行します。次の処理が行われます。
リポジトリを変更し、ビルドすると新しい wagbyapp が用意されます。この wagbyapp を本番環境にコピーします。その後に再度 migrate_db.bat を実行すると、テーブル定義の差分が自動適用されます。
適用したテーブル定義(スキーマの変更)を戻すことはできません。
本機能は MySQL (5.7以上) と PostgreSQL (9.4以上) で利用できます。それ以外のデータベースではご利用いただけません。
R8.5.0 以降の Wagby で対応しています。
migrate_dbは本番環境で利用することを想定しています。
migrate_dbを開発環境で実行することはできますが、開発環境のデータベースに対するスキーママイグレーション処理となります。本番環境には影響されません。
flyway での履歴管理をやめる場合は次のコマンドを入力します。
これにより $(DEVHOME)/migratedb 及び flyway_schema_history テーブルが削除されます。
手動でテーブル定義を変更するなどの操作を行うと、スキーママイグレーションの管理情報と整合性がとれなくなり、migrate_db コマンドが失敗します。
いったん
必須項目には自動的にデフォルト値がセットされます。Wagbyが生成するDDL(create table)のカラムに定義されたデフォルト値が使われます。
デフォルト値を指定しなかった場合、次のようになります。
"新" の方に順序が新しく用意された場合、マイグレーションによって順序も作成されます。
各スクリプト実行時に "Out Of Memory" (メモリ不足) というエラーメッセージが表示されることがあります。この場合、次のように対応します。
check_db
次のコマンドを入力することで、外部データベースとの接続テストを行うことができます。
> check_db.bat
...
getDatabaseProductName=HSQL Database Engine
getDatabaseProductVersion=2.0.0
...
getDriverName=HSQL Database Engine Driver
getDriverVersion=2.0.0
...
init_db
次のコマンドを入力することで、テーブルの作成ならびに初期データの登録を行うことができます。
> init_db.bat
Command: auto
All table enabled
Config File:.\conf\initdb.xml
Log4j Property File: default file.
import seq 11/11 at 0 sec. process 11 at 0 sec. ...
...(省略)
import juser 2/2 at 0 sec. process 2 at 0 sec. ...
ワンポイント
export_db
次のコマンドを入力することで、現在のテーブルの値をエクスポート(外部ファイルとして出力)することができます。
> export_db.bat ..\..\export\data_xxxx
重要
drop_db
次のコマンドを入力することで、外部データベース上の(Wagbyに関する)データ及びテーブル定義を削除します。
> drop_db.bat
import_db
次のコマンドを入力することで、テーブルの作成ならびに、エクスポートフォルダ内のデータ一式を外部データベースに読み込むことができます。
> import_db.bat ..\..\export\data_xxxx
重要
migrate_db8.5.0
準備すること (本機能を利用するときに必要な設定)
バージョンアップ時の注意点
操作方法
1. テーブル定義を作成する
2. 最初の操作
3. スキーママイグレーションを行う
注意
対応するデータベース
対応する Wagby のバージョン
開発環境との関係
スキーママイグレーションをやめる
> migrate_db.bat clean
スキーママイグレーションの内容をリセットする
migrate_db.bat clean
でスキーママイグレーションの管理テーブルを初期化し、その後あらためて migrate_db コマンドを実行することで、現時点の状態から、再びスキーママイグレーションを利用できるようになります。
技術仕様
必須項目の扱い
型
初期値
数値(小数含む)
0
文字列
Undefined
日付
1970-1-1
時刻
0:0:0
日付時刻
1970-1-1 0:0:0
モデル参照
1
必須値のデフォルトの変更方法
#jp.jasminesoft.jfc.gen.InitdbImportXslGenerator.defaultvalue.Byte=0
#jp.jasminesoft.jfc.gen.InitdbImportXslGenerator.defaultvalue.Short=0
#jp.jasminesoft.jfc.gen.InitdbImportXslGenerator.defaultvalue.Int=0
#jp.jasminesoft.jfc.gen.InitdbImportXslGenerator.defaultvalue.Long=0
#jp.jasminesoft.jfc.gen.InitdbImportXslGenerator.defaultvalue.Float=0
#jp.jasminesoft.jfc.gen.InitdbImportXslGenerator.defaultvalue.Double=0
#jp.jasminesoft.jfc.gen.InitdbImportXslGenerator.defaultvalue.String=Undefined
#jp.jasminesoft.jfc.gen.InitdbImportXslGenerator.defaultvalue.Date=1970-1-1
#jp.jasminesoft.jfc.gen.InitdbImportXslGenerator.defaultvalue.Time=0:0:0
#jp.jasminesoft.jfc.gen.InitdbImportXslGenerator.defaultvalue.DateTime=1970-1-1 0:0:0
#jp.jasminesoft.jfc.gen.InitdbImportXslGenerator.defaultvalue.Zipcode=900-0000
順序の扱い
その他の情報
扱うデータサイズが巨大の場合
-Xmx512m