Rutin patch database
Kesibukan “coding demi sesuap nasi” he he he , sempat membuat blog ini enggak keurus.
Untungnya ada beberapa pengunjung yang berbaik hati untuk meninggalkan komennya sehingga saya pun jadi rutin untuk mengecek blog ini.
Melakukan perubahan struktur database merupakan pekerjaan sampingan yang mau tidak mau harus kita terima dengan ikhlas jika membuat aplikasi terutama aplikasi masal, karena biasanya aplikasi tipe ini sering sekali terjadi perubahan untuk memenuhi kebutuhan klien.
Untuk contoh disini saya menggunakan database Firebird.
Firebird sendiri sudah menyediakan command line tool (isql) untuk mengeksekusi pernyataan DML (SELECT, INSERT, UPDATE dan DELETE), DDL (CREATE, DROP, ALTER) dan DCL (GRANT, REVOKE de el el).
Isql ini mirip dengan tool mysql, referensi lengkap tentang isql bisa dilihat disini.
Untuk menjalankan isql kita membutuhkan library fbclient.dll dan secara default kedua file ini biasanya ngumpul di folder “C:\Program Files\Firebird\Firebird_x_x\bin” jika Anda sudah menemukannya, copykan kedua file tersebut ke folder aplikasi Anda. Hal ini kita lakukan untuk menyederhanakan dalam penulisan kode program.
Kita ambil contoh kasus, misal pada saat rilis awal program kita mempunyai struktur tabel siswa seperti berikut :
kemudian terjadi perubahan struktur table siswa dengan adanya penambahan field NAMA_AYAH dan NAMA_IBU
perintah DDL yang kita gunakan untuk menambahkan kedua field tersebut adalah sebagai berikut :
kemudian skrip diatas kita simpan dengan nama patchdb.sql
Sampai disini muncul masalah yaitu isql tidak bisa langsung mengeksekusi skrip diatas, agar skrip diatas bisa dieksekusi maka file patchdb.sql harus kita edit dengan menambahkan beberapa kode berikut :
sehingga isi akhir dari file patchdb.sql adalah sebagai berikut :
Skrip diatas dengan asumsi lokasi database (DBSLS.FDB) satu folder dengan aplikasi utama. Oke sekarang saatnya kita mengeksekusi file patchdb.sql dengan memanfaatkan utility isql.
Untuk mencobanya tambahkan sebuah modul kemudian copy paste kode berikut selain itu tambahkan juga referensi Microsoft Scripting Runtime di project Anda :
Pada contoh diatas penulisan kode :
masih hard-coding tentunya hal ini akan menyebabkan error jika aplikasi diinstall selain difolder “C:\Program Files\SmartLibrary”, jadi silahkan kembangkan sendiri untuk penyelesaiannya
Kesimpulannya dengan menggunakan metode sederhana seperti ini, setiap ada perubahan struktur database kita cukup mengirimkan file patchdb.sql yang berisi perubahan struktur database ke klien, gimana simple kan ?.
Selamat mencoba
Comments