micronaut-projects / micronaut-liquibase

Integration between Micronaut and Liquibase
Apache License 2.0
15 stars 10 forks source link

Unable to set liquibase.duplicateFileMode #433

Open toodygarik opened 1 year ago

toodygarik commented 1 year ago

Expected Behavior

I'd like to set the duplicateFileMode to WARN instead of ERROR which is the default value as the next error message correctly suggests me: "You can limit the search path to remove duplicates with the liquibase.searchPath setting. Or, if you KNOW these are the exact same file you can set liquibase.duplicateFileMode=WARN." I've set liquibase.duplicateFileMode: WARN property in my application.yml file, but It seams Liquibase doesn't pick it up.

I've tested with value injection (@Value("/${liquibase.duplicateFileMode}")) that the property has been set correctly in the application.yml, but GlobalConfiguration.DUPLICATE_FILE_MODE.currentValue is still equals to ERROR during the startup.

How could I set this property?

Actual Behaviour

Liquibase doesn't seem to care about any property inside the application.yml which is not under liquibase.datasources.*.

Steps To Reproduce

  1. Micronaut 3.8.0, Kotlin 1.8.0
  2. Set liquibase.duplicateFileMode in applicaiton.yml
  3. Write a Micronaut Singleton which extends ApplicationEventListener<ServiceReadyEvent>
  4. In onApplicationEvent(event: ServiceReadyEvent?) test that the property is set but GlobalConfiguration.DUPLICATE_FILE_MODE.currentValue didn't changed.
  5. Also you can check GlobalConfiguration.DUPLICATE_FILE_MODE.currentConfiguredValue.providedValue.sourceDescription says that it's still the default value.

Environment Information

No response

Example Application

No response

Version

3.8.0

toodygarik commented 1 year ago

Small update: I found that LIQUIBASE_DUPLICATE_FILE_MODE environmental variable set to WARN before run the test works. So in my multi module project (modular monolith) the solution was to replace the next bit in ALL modules build.gradle.kts from this:

tasks.withType<Test> {
    useJUnitPlatform()
}

to this:

tasks.withType<Test> {
    useJUnitPlatform()
    environment("LIQUIBASE_DUPLICATE_FILE_MODE", "WARN")
}