search-path is a global argument that specifies a complete list of location(s) to search for files like changelogs. You can specify multiple paths by separating them with commas. search-path is only used to read files and does not specify files to write to. It is available in Liquibase 4.13+. For more information, see How Liquibase Finds Files: Liquibase Search Path.


Liquibase uses the paths to files as part of changeset identifiers. It is important for these paths to remain consistent and stable, because they are often included in shared changelog files, even when the physical location of those files may change from machine to machine. The search path is the list of base physical locations where given changelog paths can be found. For each file to look up, Liquibase will check all those locations for the file.

For example, if your referenced file path is db.changelog.xml and your search path is /Users/example/liquibase,/projects/global, Liquibase will look for /Users/example/liquibase/db.changelog.xml and /projects/global/db.changelog.xml.

You can also use search-path to specify how to find files stored remotely on Amazon AWS S3. For more information, see Use search-path with S3.


You can set this parameter in the following ways:

Option Syntax
Liquibase properties file
liquibase.searchPath: <string>
Global flow file argument (example)
      - type: liquibase
        command: update
        globalArgs: { search-path: "<string>" }
Global CLI parameter
 --search-path=<string> update

JVM system property (JAVA_OPTS Environment Variable)

Liquibase Environment Variables

For more information, see Working with Command Parameters.

Tip: If you use Maven, Ant, Spring Boot, or other integrations, you can set your search path in the default files, such as pom.xml, application.yml, and others. Check the Tools & Integrations documentation for more information.

Related links