2019年7月8日月曜日

デプロイ④ - DB再編成プログラム

DB再編成プログラムに関してはデプロイメントユニットは使用しません。「ビルド」メニュー→「再編成をエクスポート」を選択します。






1..NET環境

エクスポート時に指定するのはDB接続情報です。ディフォルト値はターゲット環境の値がセットされていますが、適用対象の環境と違う場合は変更します。


「Zipを作成」ボタンをクリックするとターゲットディレクトリ下の「Reorgs」にzipファイルが生成されます。



DB再編成プログラムの実行に関してはエクスポート時のダイアログに説明が表示されていますが、Reorg.exeに対して-noguiと-forceオプションを指定して実行します。

  C:¥work> Reorg.exe -nogui  -force

-noguiはGUIを表示しない。というオプションですが、指定しないと下記のようなウインドウが表示されます。再編成自体は実行可能ですので必須のオプションではありません。



2.Java環境

Java環境も同様にエクスポート時に指定するオプションはDB接続情報です。Javaなのでアーカイブファイルはjarです。




DB再編成プログラムの実行に関してはエクスポート時のダイアログに説明が表示されていますが、JavaコマンドでReorganizationクラスを指定します。オプションとしては-forceを指定します。(JavaはLinux等コマンドラインベースのOSでの使用も前提になりますのでGUIオプション(-nogui)はありません)

work$ java -cp myreorg.jar:gxclassr.zip:jdbcdriver.jar mypackage.Reorganization -force


※1 -myreorg.jarはエクスポート時に生成されたjarファイル名を指定します。
※2 mypackageはJavaジェネレータの「Java package name」プロパティで指定されているパッケージ名を指定、未指定の場合は「Reorganization」のみを指定します。



3.DB再編成に関する注意点

DB再編成には注意点があります。環境(Environment)④ - 環境ごとにビルドする理由 でも書きましたが、GeneXusは前回のDB再編成情報を記録していて次にビルドする時にデータモデルに変更がある場合、前回から次回までのデータモデルの差分をDDLとして抽出し、DB再編成処理として実行します。

しかし、一度DB再編成処理を実行してしまうと、その処理内容は対象環境に対しては適用済みとなり二度と実行する事は出来ません。

GeneXus IDE上でビルドを行っている時は特に意識する必要はありませんが、テスト環境や本番環境の様にGeneXusから直接DB再編成処理が実行出来ない環境の場合、つまり、DB再編成処理をエクスポートする事が必須の環境の場合はDB再編成処理が発生する都度エクスポートしておかないと、間が抜けてしまってDBの変更が出来なくなってしまいます。







0 件のコメント:

コメントを投稿