Liquibase is used by millions of development teams around the world to automate manual database changes. Whether you have existing databases with countless objects or a greenfield development in the cloud, Liquibase is the proven solution. Beta Release: Liquibase 4. How does it work? Liquibase uses scripts called changesets to manage database changes.
|Published (Last):||1 December 2010|
|PDF File Size:||1.33 Mb|
|ePub File Size:||15.59 Mb|
|Price:||Free* [*Free Regsitration Required]|
This project was started once upon a time by Tim Berglund, and is currently maintained by Steve Saliman. News Januart 25, Added support for an undocumented ChangeSet attribute. The actual ChangeSet property in the source code is named filePath. The Groovy DSL now supports both. The default is still to inherit the filePath from the DatabaseChangeLog.
This resolves Issue The bugs in Liquibase 3. September 21, Version 2. Note that there is a bug in Liquibase, documented in CORE that prevents the DSL from parsing the new validateXYZ attributes of a constraint, but I wanted to release a version that otherwise works with the latest Liquibase releases. September 7, Liquibase version 3. In the meantime, if you depend on Liquibase 3.
August 20, Liquiabse version 3. I have a workaround for it that will be released in the next version of the DSL. As soon as Liquibase 3. We apologize for the inconvenience. March 3, Release 2. This release will be pushed in the next few days after I look into another issue. September 3, Release 2. This release will decouple the DSL from any particular version of Liquibase, making it easier for users to take advantage of new releases of Liquibase as soon as they are released.
Note that the DSL itself is tested against a specific version of Liquibase to ensure complete compatibility with a specific version, so YMMV with regard to newer releases. Release 2. Users must make sure the desired version of Liquibase is on the classpath. There was a bug introduced in version 1.
Version 1. If you are updating from version 1. Failing to do this wil result in Liquibase trying to run the changes again. Liquibase made a change to the checksum logic in version 3. If you have any changes that use runOnChange, you should run an update once with your old version, then run it again with the new version to fix the checksums.
Liquibase changed the resourceFilter attribute of the includeAll element to just filter. Since the 2. The alterSequence change used to have a willCycle attribute. If you are running Liquibase directly from the command line using the binary distribution of Liquibase, you would need to copy the liquibase-groovy-dsl, groovy-x.
If you are running Liquibase using a Gradle plugin, Maven plugin, or Spring Boot, follow the documentation of the tool to add these artifacts to the classpath. The DSL syntax is intended to mirror the Liquibase XML syntax directly, such that mapping elements and attributes from the Liquibase documentation to Groovy builder syntax will result in a valid changelog.
Note that wile the Groovy DSL fully supports using absolute paths for changelogs, we strongly recommend using relative paths instead. When Liquibase sees an absolute path for a changelog, all changes included by that changelog will also have absolute path names, even if the include or includeAll element used the relativeToChangeLog attribute.
Deprecated and Unsupported Items Liquibase has a whereParam element for changes like the update change. If you were using the DSL prior to version 1. This is inconsistent with Liquibase and has been replaced in 1.
This is no longer allowed. Prior to 1. This has been replaced with createProcedure. This is no longer supported, the path to the file should be used instead. This is inconsistent with the rest of the DSL and has been removed.
Prior to 2. This has been changed to filter to remain consistent with Liquibase itself. Additions to the XML format: In general, boolean attributes can be specified as either strings or booleans. This might happen if you, for example want to reformat a changeSet to add white space. The Liquibase documentation tells you how to set a property for a databaseChangeLog by using the property element. Liquibase has an includeAll element in the databaseChangeLog that includes all the files in the given directory.
The Groovy DSL implementation only includes groovy files, and it makes sure they are included in alphabetical order. This is really handy for keeping changes in a different file for each release. As long as the file names are named with the release numbers in mind, Liquibase will apply changes in the correct order. The idea is that you would have a change to create the primary key or foreign key, and another to create the index for it.
The index change would use the associatedWith attribute to let Liquibase know that this index will already exist for some databases so that Liquibase can skip the change if we are in one of those databases. The Liquibase authors do say it is experimental, so use at your own risk The executeCommand change has an undocumented os attribute. The os attribute is a string with a list of operating systems under which the command should execute.
If present, the os.
Get Liquibase Support With Liquibase Pro
Commercial Version[ edit ] Datical is both the largest contributor to the Liquibase project and the developer of Datical DB — a commercial product which provides the core Liquibase functionality plus additional features. Change Forecasting: Forecast upcoming changes to be executed before they are run to determine how those changes will impact your data. Rules Engine to enforce Corporate Standards and Policies. Supports database Stored Logic: functions, stored procedures, packages, table spaces, triggers, sequences, user defined types, synonyms, etc. Compare Databases enables you to compare two database schemas to identify change and easily move it to your change log. Change Set Wizard to easily define and capture database changes in a database neutral manner. It manages Database Schema changes together with application code in a programmatic fashion that eliminates errors and delays and enables rapid Agile releases.