output-line-separator

The output-line-separator global parameter determines the string that separates lines in STDOUT, such as when you use the update-sql command or the future-rollback-sql command. By default, it is set to the line separator used by the operating system:

  • Mac/Linux: LF (line feed; encoded as \n)

  • Windows: CR LF (carriage return line feed; encoded as \r\n)

Uses

If you want to use a different character than your operating system’s default string as a line separator in Liquibase, you can set output-line-separator to a string value of any length. For example, you can set it to multiple newlines or a substring between two newlines.

If you want STDOUT to display all text in a single line, you can set output-line-separator to a non-newline character. The character you set delimits each substring in STDOUT.

Setting the output-line-separator parameter

You can set output-line-separator 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.outputLineSeparator: <string>

CLI global parameter

In your command line, use a global parameter with a single Liquibase command:

liquibase --output-line-separator=<string> 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.outputLineSeparator=<string>

Windows syntax:

set JAVA_OPTS=-Dliquibase.outputLineSeparator=<string>

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_OUTPUT_LINE_SEPARATOR=<string>

Windows syntax:

set LIQUIBASE_OUTPUT_LINE_SEPARATOR=<string>

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.

Related links