再編成をエクスポートして実行する処理は、アプリケーションのデプロイプロセスの一部です。GeneXus では、[ すべてビルド ] / [ すべてリビルド ] 中に再編成プログラムを作成 (および、既定で実行) します。その際には、 [ ビルド ] > [ データベーステーブルを作成 ] または [ ビルド ] > [ データベーステーブルの影響分析 ] を使用します。
[ 再編成をエクスポート ] オプションは、 [ ビルド ] > [ 再編成をエクスポート ] の下にあります。このオプションを使用すると、最新のビルドプロセスでビルドされた再編成プログラムの実行に必要なファイルを含むパッケージを作成できます。このパッケージを別の実行環境 (本番運用環境など) に送って実行し、対応するデータベーススキーマを作成または再編成できます。
Java 環境の場合、 [ 再編成をエクスポート ] オプションでは、最新の再編成プログラムを使用して .jar ファイルが作成されます。
ダイアログに次の情報を入力します。
- ファイル名: 再編成プログラムが含まれている .jar ファイル名です (例: Reorganization_20170425155404.jar)。
- JDBC URL: サーバー名、ポート、再編成するデータベースの名前を入力します。分析は、使用する JDBC ドライバーによって異なります。既定では、そのモデルで設定された JDBC URL が提案されます(例: jdbc:mysql://apps6.genexus.com:3306/Idc17c75b1c3d40de51410883a256e5f2f)。
- JDBC ドライバー: ドライバーのクラス名です (例: com.mysql.jdbc.Driver)。
- ユーザー: 再編成プログラムの実行権限を持つデータベースユーザーを入力する必要があります。既定では、そのモデルで設定されたユーザーアカウントが提案されます。
- パスワード: ユーザーフィールドで指定したユーザーアカウントのパスワードを入力します。既定では、そのモデルで設定されたパスワードが提案されます。
- JAR に設定ファイルを含める: 設定すると、reorg.cfg が .jar ファイルに含められます。
これにより、再編成ファイルが含まれた .jar ファイルが作成されます。ファイルが置かれたフォルダには、JDBC ドライバーもコピーされます。
次のように実行します。
java -cp Reorg.jar; gxclassR.jar;<ドライバー jdbc> <定義されている場合はパッケージ名>.Reorganization –force -nogui
フラグの詳細の参照先: [ Create Database Options ] プロパティ
–force オプションを指定しないと、次のようなエラーが表示されます。
There are no reorganization specifications
グラフィックインターフェースを持たない、Windows 以外のプラットフォームで実行している場合は、-nogui オプションを指定しないと、次のエラーが表示されることがあります。
Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:134)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:141)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62)
at java.awt.Window.init(Window.java:231)
at java.awt.Window.<init>(Window.java:275)
at java.awt.Frame.<init>(Frame.java:401)
at com.genexus.GXReorganization.showUI(GXReorganization.java:168)
at com.genexus.GXReorganization.executeReorg(GXReorganization.java:228)
at com.genexus.GXReorganization.executeReorg(GXReorganization.java:215)
at Reorganization.main(Reorganization.java)
グラフィックインターフェースを使用しない場合は –nogui オプションを指定する必要があります。たとえば、Linux 上で実行するコマンドは次のようになります。
java -cp Reorg.jar:gxclassR.jar:<ドライバー jdbc> <定義されている場合はパッケージ名>.Reorganization –nogui –force
.NET 環境の場合、 [ 再編成をエクスポート ] オプションでは、最新の再編成プログラムを使用して .zip ファイルが作成されます。
ダイアログに次の情報を入力します。
- ファイル名: 再編成ファイルが含まれている .zip ファイル名です。
- Windows 統合認証: 選択すると、DBMS への接続に Windows 認証を使用して再編成が実行されます。
- ユーザー: 再編成の実行に使用する DBMS ユーザーです。
- パスワード: そのユーザーのパスワードです。
これにより、再編成ファイルが含まれた .zip ファイルが作成されます。
再編成を実行するには、ファイルを解凍し、reor.exe を実行します。-force、-nogui などのフラグを使用できます。
reor.exe -nogui -force
Reorganization.zip ファイルをインターネットからダウンロードする際に、Windows で「ブロック」が有効になっている場合、次の例外が発生する可能性があります。 ファイルまたはアセンブリ、またはその依存関係の 1 つが読み込めませんでした この操作はサポートされません System.NotSupportedException
ソリューション:
- ダウンロードしたファイルを右クリックする
- [ プロパティ ] を選択する
- 右下に表示されている [ ブロックの解除 ] にチェックを入れる
.NET Core も再編成ファイルを .zip でパッケージ化します。再編成プログラムを実行するには、次のコマンドを実行します:
dotnet Reor.dll -nogui -noverifydatabaseschema -force
フラグの詳細の参照先: [ Create Database Options ] プロパティ
このオプションは GeneXus 15 Upgrade 4 以降で使用できます。
|