OpenMetadata icon indicating copy to clipboard operation
OpenMetadata copied to clipboard

Flyway migration fails when Database Password starts with `$`

Open akash-jain-10 opened this issue 1 year ago • 0 comments

Affected module Does it impact the UI, backend or Ingestion Framework? Backend

Describe the bug Database Passwords starting with $ character fails the server migration scripts with the below error -

/opt/openmetadata/bootstrap/../libs/
Using Configuration file: /opt/openmetadata/bootstrap/../conf/openmetadata.yaml
Url:jdbc:postgresql://localhost:5432/openmetadata_db?allowPublicKeyRetrieval=true&useSSL=true&serverTimezone=UTC User:root Password:<PASSWORD_STARTING_WITH_$> ScriptRoot: ./bootstrap/sql/migrations/flywayValidateOnMigrate:true
Exception in thread "main" org.flywaydb.core.api.FlywayException: Unknown resolver: <PASSWORD_STARTING_WITH_$>
	at org.flywaydb.core.internal.configuration.resolvers.PropertyResolverContextImpl.resolveValue(PropertyResolverContextImpl.java:40)
	at org.flywaydb.core.internal.configuration.resolvers.EnvironmentResolver.resolve(EnvironmentResolver.java:54)
	at org.flywaydb.core.api.configuration.ClassicConfiguration.getResolvedEnvironment(ClassicConfiguration.java:133)
	at org.flywaydb.core.api.configuration.ClassicConfiguration.getCurrentResolvedEnvironment(ClassicConfiguration.java:121)
	at org.flywaydb.core.api.configuration.ClassicConfiguration.configure(ClassicConfiguration.java:1674)
	at org.flywaydb.core.api.configuration.ClassicConfiguration.configureFromConfigurationProviders(ClassicConfiguration.java:1889)
	at org.flywaydb.core.api.configuration.ClassicConfiguration.configure(ClassicConfiguration.java:1348)
	at org.flywaydb.core.api.configuration.ClassicConfiguration.<init>(ClassicConfiguration.java:214)
	at org.flywaydb.core.Flyway.<init>(Flyway.java:112)
	at org.flywaydb.core.api.configuration.FluentConfiguration.load(FluentConfiguration.java:59)
	at org.openmetadata.service.util.TablesInitializer.get(TablesInitializer.java:280)
	at org.openmetadata.service.util.TablesInitializer.main(TablesInitializer.java:224)

To Reproduce

Steps to reproduce

  • Configure DB_USER_PASSWORD with any credentials starting with $. Example $1234abcdABCD_000.
  • Start the server (be it any type of deployment method)

Expected behavior

  • Server should start the database migrations as expected

Version:

  • OS: Mac OS with M1 Pro
  • OpenMetadata version: main

Additional context Looks like the root cause of this issue is with Flyway as mentioned in the issue here

akash-jain-10 avatar Feb 15 '24 15:02 akash-jain-10