Over a million developers have joined DZone.

Happy Birthday! Here's to 10 Years of Liquibase

Liquibase just celebrated its 10th birthday. Here's the founder's look back at the past decade and speculation on what the next one will bring.

· Database Zone

Build fast, scale big with MongoDB Atlas, a hosted service for the leading NoSQL database. Try it now! Brought to you in partnership with MongoDB.

Ten years ago today was the initial public announcement of Liquibase, originally called the "Sundog Database Refactoring Tool."

Like most open source projects, Liquibase started out simply as a tool to solve a problem I had. We had many different client projects on a variety of databases and it was getting more and more difficult to ensure that changes everyone made in development reached other developers and production. I was primarily using Java at the time and was not able to find anything that would solve our needs. There were tools like Apache ddlutils, but it did not track changes — it only kept the current state. There was also Rails Active Record Migrations, but that was Ruby, and I didn’t like the fact that their change tracking would not work across multiple branches and multiple developers. Not finding anything that worked, I started my own open source project.

You can still see my initial requirements in Liquibase:

  • I needed to support multiple databases types, even the same code running against different database types.
  • I needed a way to pull in blocks of database structure when I would pull in a shared library of functionality.
  • I needed to support multiple developers and multiple branches under concurrent development.
  • I needed a way to safely push updates to the database schema along with updates to the code without worrying about losing data or missing changes.
  • I needed a way to store database changes along with the source code in our source control system.

Leading up to this point, I had read Ambler and Sadalage's book "Refactoring Databases: Evolutionary Database Design," which helped with envisioning database changes as a series of refactorings and inspired many of the higher-level refactoring tags like "addLookupTable."

We've come a long way in 10 years. When Liquibase was first released, there were:

  • The changelog XML file with its changeSets and change tags.
  • ChangeSets were tracked by id + author + path.
  • Support for <include>.
  • A command line, Ant, and servlet listener interface.
  • Support for Java 1.4 and 1.5.
  • Support for MySQL 4.1./5.0, Postgresql 8.1, Oracle 10gR2, and MS SqlServer 2005.

Since that initial release, we've had almost 70 releases with help from innumerable contributors. We've added support for more databases, more changelog file formats, preconditions, tagging, contexts, dbdoc, changelog parameters, diff, offline database support, and much, much more.

What do the next 10 years have in store? Lots more of the same. Backwards compatibility has always been important to me, and it is fun to see that the example changelog in the initial release can still be run with Liquibase 3.5.2. We are continuing to add support for new databases (including NoSQL databases), new refactorings, and new features. The "Refactoring GUI IDE," mentioned in the initial announcement, turned out to be well beyond the scope of what I could manage, has been realized in Datical DB. I mentioned support for .Net in the initial announcement and I've not given up hope on that project yet, despite not making any progress on it so far. JavaScript is another technology that could use a Liquibase port, if there are any volunteers…

Since starting with Datical 3 years ago, I've not only had a business card that says "Benevolent Dictator for Life, Liquibase" but I’ve been able to work on Liquibase full-time, which has been invaluable in continuing to grow the project and help the community. Currently, I am continuing to improve the 3.x codebase while starting a larger reworking of the code for a 4.0 release, which will set us up for expanded functionality and simpler maintenance in the next decade. Also in the pipeline is website and documentation improvements, a better plugin portal, and much more.

Because we are an open source project and don't really have "customers," it is impossible to know how many people use Liquibase, but there are thousands of visitors to liquibase.org every day from almost every country on the planet. Liquibase has grown far more than I ever imagined when I started it as a fun side project a decade ago. I released it as an open-source project because I wanted a chance to contribute back to the community and to see what it was like on the other side of an open source project. I've always been a believer in open source, and managing Liquibase has only solidified that belief because Liquibase could not be what it is today without the community around it. Thank you all!

Now it's easier than ever to get started with MongoDB, the database that allows startups and enterprises alike to rapidly build planet-scale apps. Introducing MongoDB Atlas, the official hosted service for the database on AWS. Try it now! Brought to you in partnership with MongoDB.

Topics:
liquibase ,database change management ,database schema

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}