20th May 2013, 12:40 pm
Since the 3.0 beta 2 release, I have been focused on the new liquibase.org website, bug fixes, performance improvements, API cleanup and additional automated test creation and fixup.
Work remaining in the final push to 3.0.0:
- Finish documentation of new 3.0 features (including a “what’s new in 3.0″ list)
- Finish Java API cleanup/documentation
- Clean up “fix in 3.0.0″ Jira list that includes many issues that have already been fixed and others that will not make it for 3.0.
- Any remaining showstopper bugs found in RC1
My hope is to have 3.0.0 released in the first week of June.
Download
As always, you can download the release from http://liquibase.org/download and direct any comments or questions for http://forum.liquibase.org
The 3.0 RC1 release is the first 3.0 release that is available through the maven repository as well. It should be working it’s way through the mirroring process now.
6th May 2013, 01:31 pm
Looking for an easier way to use Liquibase?
I recently launched a “Liquibase IDE” Kickstarter project called “Liquibench” at http://www.kickstarter.com/projects/149257506/liquibench with the goal of making Liquibase more Intellij/Eclipse/Resharper and less XML-editor+command-prompt.
I’ve started similar projects over the years, but to finish and support them took far more time than I was able to provide. My hope with this project is to jump-start it as a commercial offering in order to provide the effort required to build it and the ability to support it long term.
If you are interested in such a tool, please consider helping to fund the project. A successful kickstarter project will ensure it gets built, prove the market, and greatly expand the team dedicated to Liquibase.
28th March 2013, 03:50 pm
Liquibase 3.0 beta 2 is now available.
Major changes since beta 1 include:
- Support for YAML and JSON formatted changelogs (see below)
- Support for excluding databases in dbms attribute (see below)
- Support for setting the dbms attribute on sql and sqlfile changes
- Can generate rollback script file on startup with SpringLiquibase
- Improved UTF8 support
- Improvements to case-sensitive database support
- Bugfixes
Excluding from dbms list
The dbms attribute now supports prepending a database name with “!” to specify which databases a changeset should not run on. For example: <changeSet dbms=”!oracle”>
JSON and YAML changelog support
For all you XML-haters out there, Liquibase not natively supports JSON and YAML formatted changelogs. The syntax and tags are very similar between the JSON, YAML and XML formats.
YAML example: https://raw.github.com/liquibase/liquibase/master/liquibase-integration-tests/src/test/resources/changelogs/yaml/common.tests.changelog.yaml
JSON example: https://raw.github.com/liquibase/liquibase/master/liquibase-integration-tests/src/test/resources/changelogs/json/common.tests.changelog.json
If you chose to use YAML or JSON format, you will need to include snakeyaml 1.12 in your classpath.
I’m continuing to work on shifting the documentation to github from the current wiki, and while there is still much more to do, you can at least see YAML and JSON change syntax example at http://liquibase.github.com/documentation/changes/add_auto_increment.html.
Download
As always, you can download the release from http://liquibase.org/download and direct any comments or questions for http://forum.liquibase.org
13th February 2013, 03:48 pm
Although it has been far too long since the last liquibase release, that is not from a lack of work. I’ve been hard at work at a major update that has been stuck in the “I think I’ll have it wrapped up next month” phase for over a year at this point. That is a topic for a future blog post, though…
I am, however, very pleased to announce Liquibase 3.0, beta 1. There is definitely a reason it is labeled as “beta” rather than “RC” as there is still a lot of work to do on documentation, API finalization, and bug fixes. In particular, my roadmap for 3.0 beta 1 -> 3.0.0 final is:
- Vet Liquibase API changes. The goal of the 2.0 release was to open Liquibase for integration and extensibiliy and I want a strong, stable API. Version 3.0 greatly expands the scope of how you can mold and shape liquibase, and I want to make sure that the APIs liquibase exposes are easy to use yet will support future features as well without breaking changes.
- Documentation update. The liquibase.org website is a bit dated and the there are many holes in the documentation. I am going to update that with a new github-based site and ensure it is up to date with what is new in 3.0 (and things missed from previous releases)
- Jira cleanup. http://liquibase.jira.com has gotten to be a mess in 3.0 with many duplicated issues, issues that have already been resolved, simple things that can be fixed still in 3.0 mixed with larger changes that will have to go in 3.1+, etc. I need to go through the list to make sure simple and/or blocker bugs are resolved and things that can wait for 3.1 are pushed out.
- Testing. I’ve primarily tested against Mysql, Oracle, SqlServer, HSQL, and H2. I need to make sure the other supported databases are working as well.
My hope is that 3.0.0 beta represents a feature complete 3.0 version, but the final walk through of features, bugs and extension points will probably find some additional larger changes to make. My plan is to have a new beta roughly bi-weekly until the 3.0.0 release in early April. However, “it’s software, so it can do anything except ship on time”.
High level changes in 3.0
- Dropped Java 1.5 support
- Major changes in diff and snapshot log
- Support for “catalogs” in addition to schemas
- Separated “diff” and “snapshot” logic for better modularity
- Extension support for LockService
- Extension support for defining new DataTypes
- Extension support for defining new snapshot DatabaseObjects
- Extension support for defining new Snapshot log
- Extension support for how to compare DatabaseObjects
- Better extension support for changelog generation
- More object types are snapshotted
- Changes can provide metadata helpful for IDE and other integrations
- Added ability for objects to control how they are serialized via the LiquibaseSerializable interface
- Can define tablespace for liquibase tables
- Performance improvements
- Ability to specify sequences to read values from on <insert>
- Improve OSGi support
- Support preconditions in formatted SQL
- Maven supports generateChangeLog
- Better support for case sensitive databases
- API cleanup
- Ability to SKIP columns in a CSV file
- Improved Informix support
- Support JDBC escape syntax in SQL
- Added futureRollbackCountSQL
- Support ${} params in formatted SQL
- Many bug fixes
Download
As always, you can download the release from http://liquibase.org/download and direct any comments or questions for http://forum.liquibase.org
2nd May 2012, 10:29 am
2.0.5 has been released. This is to fix a couple regressions introduced in 2.0.4.
Download from http://liquibase.org/download
Bug Fixes:
- Removed new load blob/clob data from files feature
- Fixed linux distribution shell script
- Command line updateSQL output is once again going to STDOUT
Full release notes: https://liquibase.jira.com/secure/ReleaseNote.jspa?projectId=10020&version=10360
19th April 2012, 12:27 pm
2.0.4 has been released. This is primarily a bug fix release during the main development on 3.0, but does include a few enhancements as well.
Download from http://liquibase.org/download
New features:
- LoadUpdate support for H2
- Support ${} params in sql files
- Ability to load blob/clob data from files
Full release notes: https://liquibase.jira.com/secure/ReleaseNote.jspa?projectId=10020&version=10160
4th April 2012, 01:14 am
Since 3.0 is taking longer than I was hoping , it may make sense to have a 2.0.4 release with high value/easy fixes for those waiting for specific problems.
Are there existing bugs in http://liquibase.jira.com or pull requests at http://github.com/liquibase that you would like to see in a 2.0.4 release?
Preference will be given to bugs/features that have patches that can simply be applied to the 2.0 branch, since I don’t want to take more time away from 3.0 than I have to.
24th February 2012, 02:22 am
It has been a while since the last Liquibase release, and I wanted to give a quick status update.
The main thing I have been working on is the next version of Liquibase, which I am going to call 3.0.0. For those of you following along, the goal of 2.0 was to create an extensible system on top of liquibase as well as solidify the liquibase APIs for anyone wanting to integrate liquibase into their applications. Due to the size of that undertaking, the “diff” support did not get the same API cleanup and extensibility system in the 2.x release.
For the last several months I have been going through the diff side of the codebase, adding things such as:
- Standardized ways to specify mappings between “standard types” and “database specific types” in changeslogs
- Support for differentiation between catalogs and schemas
- The ability to add custom database objects to extract and compare in the snapshot/diff process
- The ability to change how database objects are extracted and compared
- Support for annotations in defining Change classes to make for easier subclassing
- Support for custom diff reporting formats
- Ability to handle multiple cross schema and catalog references in diffs
All-in-all I have about 400 changed files in my local repository that I have been waiting to push up to github until it is in a coherent state. I keep thinking “I’m sure it will be ready by next week” but keep finding more I would like to get done first. Because my local repository is so different than the github repository, I have not been bringing in the pull requests as I normally would. I will get to those once I get my changes pushed since I tend to do some modifications to the commits as part of the integration process.
I am calling the next version 3.0 rather than 2.1 because of the potentially breaking changes between 2.0 and 3.0. From an end-user standpoint, there will be little to no changes in the changelog format. Most breaking changes are in the internal liquibase APIs for those integrating liquibase and/or writing extensions. More information will be made available on breaking changes closer to release date.
Besides the code, I spent time lately dealing with defacement issues on liquibase.org and blog.liquibase.org. Because of this attack and earlier spam scripts that abused the wiki system, I am going to move the documentation and site from the current dokuwiki system to github. This has the advantage of better performance, the ability to manage branches of the documentation, and the ability to include an offline version of the manual with each release. Documentation changes will require a github pull request rather than the simpler wiki-style direct editing, however.
My planned timeline for 3.0 is to commit what I have within the next week or so, then merge in the pull requests and create a “3.0 alpha 1″ release. I moved around a lot of database-specific code that will take a while for me to test and would like to get some feedback from the community as soon as possible on new bugs or regressions that were introduced by the changes. I will make an announcement when the first 3.0 release is available for testing.
10th October 2011, 04:57 pm
2.0.3 is a very small update, mainly fixing the maven repository and the end of line char in the command line unix shell script.
Other bugs fixed are:
- Allow Changelog Parameters in raw SQL changesets and formatted SQL changelogs
- Sybase NUMERIC issue
- An issue with DB2 and defaultSchema
UPDATE: fixed version number to 2.0.3
16th September 2011, 01:28 pm
Liquibase 2.0.2 has been released. It is primarily a bugfix release on the 2.0.1 release and can be downloaded from http://liquibase.org/download.
Visit the forum with any comments or questions. Release notes are available from liquibase.jira.com
With the 2.0.2 release, main development will shift to the 2.1 release. Liquibase 2.1 planning has begun with this forum post