Before attempting any of the step-by-step tutorials, please prepare your environment with the setup instructions.
When working with Liquibase, changes can either be defined with Liquibase functions or with SQL. Importantly, these modes are not mutually exclusive, and can be used in conjunction, providing considerable flexibility in how database changes are defined and deployed. For changes defined with Liquibase functions, Liquibase generates SQL appropriate for the target database. This can be helpful when:
Alternatively, Liquibase works directly with user provided database migrations. This can be helpful when:
Note: Liquibase Pro adds change types for defining procedural database code to Liquibase functions. However, unlike other changes that are Liquibase functions, these procedural database code changes, such as
CREATE FUNCTION, require database platform specific SQL (for example, on Oracle, the change would require PL/SQL). These new change types can be helpful in providing better visibility into database-specific changes from directly inspecting the change log.