> (DBFLUTE-356){Java/C#}: > ReplaceSchemaでDDL上の特別な変数を実行時に置換できるようにする 例えば、CREATE文でスキーマ名を付与して実行しなければならず、 かつ、そのスキーマ名が単体・結合・本番と環境によって変わってしまう とか言う場合、ReplaceSchemaのDDLの内容を書き換える必要があります。 そこでこちらです。 https://www.seasar.org/issues/browse/DBFLUTE-356
[replaceSchemaDefinitionMap.dfprop] map:{ ; filterVariablesMap = map:{ abc = xyz } }
[replace-schema-xxx.sql] create table /*$abc*/.AAA
すると実行時は「create table xyz.AAA」というように 実行されます。これにて切り替えが可能です。 やってることは単に置換してるだけなので非常に単純です。 なので色々な用途に利用できるかと思います。 「/*$abc*/」と埋め込み変数コメント形式で書きます。 (ただ、テスト値みたいなのを付与することはできないので注意)
replaceSchemaDefinitionMap.dfpropは環境変数で environmentType毎に指定できるので、 環境毎の切り替えが可能になります。 https://www.seasar.org/issues/browse/DBFLUTE-312 【以下復習】 例えば、環境変数が「DBFLUTE_ENVIRONMENT_TYPE=abc」と 設定されている場合、設定ファイルは 「dfprop/abc/replaceSchemaDefinitionMap.dfprop」が 評価されるようになります。 ファイルが存在しなければデフォルトの 「dfprop/replaceSchemaDefinitionMap.dfprop」 が評価されます。