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

Tip: All commands and parameters use the --kebab-case format in the CLI environment. This is the format Liquibase recommends for best results. If your preference is camelCase, it will still work in the CLI.

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