Description
I'm not sure if I got it right but... the only way to configure migrations environments is via a Properties File (for example: ./enviroment/someEnv.properties). Am I correct? (at least I didn't find more on that on the docs page )
If so, it would be also interesting to configure some of the environment properties (or override them) via CLI arguments, Java System Properties or Environment Variables.
for exemple:
Today:
migrate --path=path/to/repo --env=myenv
-> requires full configuration on path/to/repo/repositories/myenv.properties
Maybe a more flexible alternative:
(path/to/repo/repositories/myenv.properties
without url, username and password properties)
migrate --path=path/to/repo --env=myenv --url=$MYENV_URL --username=$MYENV_USERNAME --password=$MYENV_PASSWORD
or
migrate --path=path/to/repo --env=myenv -Durl=$MYENV_URL -Dusername=$MYENV_USERNAME -Dpassword=$MYENV_PASSWORD
or
env URL=$MYENV_URL USERNAME=$MYENV_USERNAME PASSWORD=$MYENV_PASSWORD migrate --path=path/to/repo --env=myenv
Motivation:
In some deployment environments, a safe approach of storing sensitive data (like db username/password) is via protected environment variables. This way, one would let url, username and password properties out of the environment property file and define it as OS Environment Variable to allow migrations to execute on the CI pipeline.
Sorry for the long description. Any thoughts about it? Is this already possible to be accomplished somehow?