bug fixing openbravo : setelah delete client, tidak semua foreign key dan trigger kembali normal

satu bugs ditemukan pada openbravo. cara me-reproduksi bugs ini adalah: lakukan delete client. kemudian cek database, lihat salah 1 table, misalnya c_order, perhatikan constraint foreign key tidak ada, dan trigger dalam kondisi disabled. bugs ini belum ketemu penyebabnya, tapi sudah ditemukan cara akal-akalannya.

konsep cara akal-akalan-nya adalah: bagaiman caranya supaya database trigger kembali enabled dan foreign key nya kembali ada. untungnya semua object database ini disimpan dalam file xml di src-db. untuk mengembalikan database object ini, lakukan serangkaian ant task berikut ini:

ant update.database
ant apply.modules
ant compile.complete.deploy

perintah ant diatas, hanya yang pertama saja yang berperan dalam mengembalikan database object. sedangkan ant yang kedua untuk menerapkan database object menjadi generated code. sedangkan ant yang ketiga dipakai untuk mengcompile generated code menjadi binary yang menjadi bagian dari apps openbravo.

sehingga, jika ant yang pertama gagal, jangan dilanjutkan ke ant berikutnya. dan kemungkinan besar akan gagal. bedasarkan pengalaman, gagalnya ant update.database ini dikarenakan ada record-record di database openbravo yang tidak mentaati kaidah referential integriti, misalnya ada record yang link dengan table lain, tapi di table lain itu recordnya tidak ada. jadi openbravo gagal dalam membuat foreign key. jadi masalah ini harus diselesaikan dulu, baru diulang lagi ant update.database, diulang terus sampai berhasil, baru lanjut ke ant berikutnya.

selamat mencoba.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s