Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

liquibase.parser.ChangeLogParser implementations allow you to read database changelog files written in different formats.  The default changelog format is XML based, but there is nothing inherently XML in the LiquiBase Liquibase internals.

Examples

  • A parser for a LiquiBase Liquibase DSL
  • A parser to read database changes stored in a 3rd party system

...

Custom parsers must implement liquibase.parser.ChangeLogParser, which includes the following methods:

Code Block

public String[] getValidFileExtensions();

Returns the file extensions this parser understands.  When LiquiBase Liquibase is fed a change log file, it will choose the parser based on the file extension.

Code Block

public DatabaseChangeLog parse(String physicalChangeLogLocation, Map<String, Object> changeLogParameters, FileOpener fileOpener) throws ChangeLogParseException

Does the work of parsing a given changelog file into the internal DatabaseChangeLog object structure used by the rest of LiquiBaseLiquibase.

Registering Custom Parsers

...

  1. Create the class in a sub-package of "liquibase.parser.ext".  LiquiBase Liquibase automatically registers Databases it finds in that package
  2. Call liquibase.parser.ChangeLogParserFactory.getInstance().register(yourParser)

...