LiquiBase XML Generator
Wednesday, December 14th, 2011Beberapa terakhir ini, di project yang sedang saya kerjakan ada beberapa mainan yang baru buat saya. Nah yang pertama yaitu Liquibase. Untuk yang belum tahu, Liquibase ini adalah sebuah database independent library open source (lisensi yang digunakan adalah Apache 2.0) yang dapat digunakan untuk tracking, managing dan applying perubahan terhadap database. Dan semua konfigurasi di Liquibase ini tersimpan pada sebuah file XML yang nantinya dapat disimpan kedalam version control.
Beberapa fitur dari Liquibase ini adalah :
- Merging changes from multiple developers
- Code branches
- Database “diff”
- Managing production data as well as various test datasets
- Generating database change documentation
- Cluster-safe database upgrades
- Automated updates or generation of SQL scripts that can be approved and applied by a DBA
- Generating starting change logs from existing databases
Pada tulisan ini, saya tidak akan membahas tentang bagaimana menggunakan tag-tag yang dikenali oleh Liquibase. Jika ingin tahu tag apa saja yang di dukung oleh Liquibase bisa langsung menuju ke halaman Liquibase QuickStart. Dibalik fitur-fitur keren yang dibawa oleh Liquibase, sekarang mari kita lihat bagaimana tampilan konfigurasi database yang harus kita tulis supaya bisa dikenali dan digunakan oleh Liquibase. Dibawah ini adalah contoh konfigurasi database yang harus kita tulis agar bisa digunakan oleh Liquibase :
<databasechangelog xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.0 http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.0.xsd"> <preconditions> <dbms type="mysql"/> </preconditions> <changeset id="1" author="nvoxland"> <createtable tableName="person"> <column name="id" type="int" autoIncrement="true"> <constraints primaryKey="true" nullable="false"/> </column> <column name="firstname" type="varchar(50)"/> <column name="lastname" type="varchar(50)"> <constraints nullable="false"/> </column> </createtable> </changeset> <changeset id="2" author="nvoxland"> <comment>Add a username column so we can use "person" for authentication</comment> <addcolumn tableName="person"> <column name="usernae" type="varchar(8)"/> </addcolumn> </changeset> </databasechangelog>
Source code lengkap bisa dilihat ke http://www.liquibase.org/samples/changelogs/mysql.changelog.xml
Nah bisa dibayangkan bukan, jika misalkan kita punya tabel kurang lebih sekitar 100 buah plus dengan tambahan relasi antar tabel (kalau ini tidak mungkin tidak
), komen dan index kolom-nya segala? ![]()
(more…)









