headless
The headless
parameter is a Boolean value that allows you to force Liquibase to run without access to the console for input and output. By default, the value is false
.
Uses
You can use the headless
parameter when you run Liquibase in automation or with CI/CD tools. For example, when running commands, you may need to skip the prompt for Liquibase Hub Auto-Registration and Report Links to continue the automation. In this case, you can set the headless
parameter to true
to run commands without interaction.
If you run Liquibase in containers, the headless
parameter will prevent Liquibase from trying to access the display, keyboard, or mouse.
Setting the headless
parameter
You can set headless
in four ways:
- In the Liquibase properties file
- As a global parameter in the CLI
- As a JVM system property
- As an environment variable (Liquibase Pro)
Liquibase properties file parameter
In Liquibase 4.1+, add the following to Liquibase properties file:
liquibase.headless
: <true|false>
CLI global parameter
In your command line, use a global parameter with a single Liquibase command:
liquibase --headless
=<true|false>
update
--changelog-file=dbchangelog.xml
Java system property
In your command line, use the JAVA_OPTS Environment Variable to set a JVM system property:
Mac/Linux syntax:
JAVA_OPTS=-Dliquibase.headless
=<true|false>
Windows syntax:
set JAVA_OPTS=-Dliquibase.headless
=<true|false>
Note: To use a Liquibase command alongside JAVA_OPTS
, add && liquibase <command>
to the end of your input.
Environment variable (Liquibase Pro)
In Liquibase Pro, set an environment variable:
Mac/Linux syntax:
LIQUIBASE_HEADLESS
=<true|false>
Windows syntax:
set LIQUIBASE_HEADLESS
=<true|false>
Note: These environment variable commands only apply to the current shell. If you need to pass an environment variable to a child process without affecting the parent process, you can use the export
command on Mac/Linux or the setx
command on Windows.