OpenMetadata
OpenMetadata copied to clipboard
Flyway migration fails when Database Password starts with `$`
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