LiquiBaseとは

LiquiBaseというプロダクトをご存知だろうか。LiquiBaseは「データベースのリファクタリングツール」と銘打つプロダクトで、先月27日にバージョン1.3がリリースされている。本稿では、現在注目を集める同プロダクトの基本的な使用法を紹介したい。

LiquiBaseの最も大きな特徴は、データベーススキーマの変更管理を行える点にある。この部分が「データベースのリファクタリングツール」と呼ばれるゆえんだ。

プログラムコードに対して行う通常のリファクタリングでも、それを思い切って行うためには、リファクタリング作業を理解し、かつアンドゥ機能を完備したIDEや、いざというときにロールバックを行うためのバージョン管理システムなどが不可欠だ。LiquiBaseは、リファクタリングの前提とも言えるそうした機能を提供するツールだと言ってよい。

同ツールは、書籍『Refactoring Databases: Evolutionary Database Design』に触発されたのが開発のきっかけとのこと。DBのリファクタリングを行う必要性とプラクティスについて述べた同書を読めば、LiquiBaseへの理解が深まることは間違いない。

「DBのリファクタリング」という作業に馴染みのない方でも、開発作業に長く携わったことのある方であれば、以下のような課題を抱えたプロジェクトを経験したことがあるのではないだろうか。

  • 度重なるバージョンアップやコードの分岐により、いつ、誰の手で、何の目的で追加されたのかわからないカラムやテーブルが存在する

  • 開発自体は先が見えてきたが、開発用のDBスキーマに手を入れすぎていて、本番DBへのマイグレーションが途方もなく困難に思える

  • 開発時はテーブルのDROP&CREATEによるマイグレーションを行っているが、「自分で作ったテストデータが失われるから」という理由で開発者になかなか実行してもらえない

  • 開発者/設計者からのスキーマ修正依頼が殺到して、DBAが死にそうだ

こうした問題に遭遇した心当たりのある方であれば、LiquiBaseを使用することでスマートな解決策を得られる可能性もあるので、ぜひ注目していただきたい。

さて、前置きはこれくらいにして、まずはLiquiBaseに触ってみることにしよう。