2016-03-31 12 views
2

Application.propertiesフライウェイ

TM_ESCALATION_QUALIFICATION=SHIFT_LEADER 

Application.java

@Value("${TM_ESCALATION_QUALIFICATION}") 
String escalationQualification; 

@Bean 
InitializingBean printConfigurations(DataSource datasource) { 
    return() -> { 
      Flyway flyway = new Flyway(); 
      flyway.setDataSource(datasource); 
      flyway.getPlaceholders().put("ESCALATION_QUALIFICATION", escalationQualification);  
      flyway.migrate(); 
    }; 
} 

SQLファイル

insert into tm_qualification (ID, NAME, DELETABLE) values (sys_guid(), ${ESCALATION_QUALIFICATION}, 0); 

上記はデフォルトの拡張子を持つファイルを使用すると動作しますが、ファイルを.sql拡張子にすると、以下のエラーが表示されます。

ウェブからのエラー

org.flywaydb.core.api.FlywayException: No value provided for placeholder expressions: ${ESCALATION_QUALIFICATION}. Check your configuration! 
    at org.flywaydb.core.internal.util.PlaceholderReplacer.checkForUnmatchedPlaceholderExpression(PlaceholderReplacer.java:101) 
    at org.flywaydb.core.internal.util.PlaceholderReplacer.replacePlaceholders(PlaceholderReplacer.java:78) 
    at org.flywaydb.core.internal.dbsupport.SqlScript.<init>(SqlScript.java:79).... 

答えて

0

、提案は使用することがある

flyway.placeholderReplacement =偽のみ>フライウェイ4.0.3(春ブーツ最新のものにアップグレードした後に働いた

ooold版を使用)

もう1つのことは、偽のプレースホルダプレフィックスこのトリックをした...

飛行機.placeholderPrefix = $$$ - 偽 - $$$