Liquibase in the Enterprise: Part 6
The last post in my series on Liquibase, an open source database change management tool, mentioned that I had been contacted by a startup that was looking to potentially work on a commercial release. A couple months after meeting with the cofounder and CTO of the firm as part of the market validation process, I was invited to a conference call for a presentation of the initial version of the product, called Datical DB. The company website is located at this link.
Attached below are some of the slides that were presented, followed by some screen shots to give you an idea of what the product looks like and what features it offers. If you have used Liquibase or have read my earlier posts in this series, you will already be familiar with the advantages of agile database change management. Links to the first five posts are provided at the bottom of this post, in case neither of these scenarios is true for you.
Over the last several years, I have presented my use of Liquibase to multiple clients, and in reviewing all of the slides I have put together to introduce the tool before my demonstrations, I think Datical did a good job summarizing the problem statement and solution for a nontechnical audience. As mentioned in my last post, the cofounder and CTO said that although he realizes there are some smart individuals in the development community such as myself who have no need for such repackaging, the company sees a need to do so in order to appeal to a wider user base.
As with many products, Datical DB runs in Eclipse. The product offers high-level abstractions with usability in mind. For example, the below screen shot shows visual representations of databases in multiple environments, and a list of clickable changeSets in the panel on the left, similar to the Outline view that Eclipse provides, tailored for additional product functionality.
The below screen shot shows a feature that enables comparisons between changeLogs. But as I mentioned during the conference call, this functionality is really no different than Eclipse built-in text file comparisons. One of the several constructive criticisms that I offered to the company is that I see no real-life scenarios where I would use this feature.
Liquibase keeps track of changeSets that have been applied to the target database over time. So any modificiations to any changeSets in a changeLog over time which have already been applied will introduce corruption into the process. One of the many huge benefits of using the tool is that the changeLog keeps track of history, so that even though there is a feature to regenerate changeSet checksums if needed, as lead architect I have very seldomly used the feature. And users need to remember that regenerating checksums can only be done effectively in limited scenarios.
However, the feature demonstrated below will probably be useful for many. It essentially executes a limited version of the Liquibase Maven Plugin command liquibase:updateSql, which runs a comparison between the changeLog and the target database and generates a SQL script that when executed migrates the target database to the version of the database represented by the changeLog.
Other Datical DB features will also be likely to be seen as useful for many. For example, the screen shot below shows representations of more than two databases at the same time to show the schema versions of all databases, and the ability to run comparisons between each. When using Liquibase, only two databases are addressed at any given time.
Overall, Datical DB shows significant potential, and I am looking forward to following company progress on the product as more Liquibase features are incorporated into its functionality. However, as an architect I strongly recommend that potential users first get familiar with at minimum some of the basics of Liquibase before using this tool. As I have personally seen from the projects that I have led, even those with strong technical backgrounds may just not understand what Liquibase is doing under the covers when running the Liquibase commands that they have been shown.
And this can introduce significant problems, especially as applications are developed on top of associated databases. Liquibase continues to be one of the best software development tools I have ever used, but as with any tool, especially those which involve data assets, make sure that those who have access and the ability to modify understand what they are doing.
Liquibase in the Enterprise: Part 1
Liquibase in the Enterprise: Part 2
Liquibase in the Enterprise: Part 3
Liquibase in the Enterprise: Part 4