Database / Liquibase interview questions
What is liquibase.properties and what configuration belongs in it?
The liquibase.properties file is the default configuration file for the Liquibase CLI and Maven plugin. When Liquibase runs, it looks for this file in the current working directory (or on the classpath) and reads database connection settings, changeLog location, and default command options. You avoid having to repeat these values on every command-line invocation.
Typical content:
# Database connection url=jdbc:postgresql://localhost:5432/myapp username=liquibase_user password=secret driver=org.postgresql.Driver # ChangeLog location changeLogFile=src/main/resources/db/changelog/db.changelog-master.xml # Default context (override with --contexts on CLI) contexts=dev # Logging logLevel=INFO # Liquibase Hub API key (optional, for Hub integration) hubApiKey=abc123...
Properties in this file map directly to command-line options. The command-line equivalent of changeLogFile=... is --changeLogFile=.... When both are present, the command-line option takes precedence.
Important security consideration: liquibase.properties should never be committed to version control when it contains real database credentials. Common approaches:
- Commit a
liquibase.properties.examplewith placeholder values and add the real file to.gitignore. - Use environment variable substitution:
password=${LIQUIBASE_DB_PASSWORD}— Liquibase resolves${VAR}from environment variables. - Pass sensitive values via CI/CD pipeline secrets injected as CLI arguments:
mvn liquibase:update -Dliquibase.password=$DB_PASS.
More Related questions...