Pembeda utama antara file pembuatan skema yang dikelola sendiri dan Liquibase (atau alat migrasi skema lainnya ) adalah bahwa yang terakhir menyediakan log perubahan skema. Ini adalah catatan perubahan skema dari waktu ke waktu. Ini memungkinkan perancang database untuk menentukan perubahan dalam skema & mengaktifkan peningkatan atau penurunan terprogram skema sesuai permintaan.
Manfaat lainnya, seperti:
- Independensi vendor database (ini dipertanyakan, tetapi mereka mencoba)
- dokumentasi otomatis
- perbedaan skema database
Salah satu alat alternatif adalah jalur terbang .
Anda akan memilih untuk menggunakan alat migrasi skema saat Anda ingin atau perlu mengelola pembaruan skema secara otomatis tanpa kehilangan data. Artinya, Anda mengharapkan skema berubah setelah sistem Anda diterapkan ke lingkungan yang tahan lama seperti situs pelanggan atau lingkungan pengujian yang stabil.
Saya telah melihat liquibase menciptakan disiplin di antara para pengembang dalam hal memodifikasi skema. Anda tidak bisa pergi dan menimpa perubahan dan eksekusi pengembang lain. Sebaliknya, Anda membuat kumpulan perubahan Anda sendiri dan menambahkannya ke akhir urutan perubahan yang akan dieksekusi. Hal ini juga memberikan kejelasan tentang perubahan apa yang terjadi, kapan dan siapa yang membawanya.
Pendekatan yang sangat "berversi" untuk pemeliharaan skema.
Sebagai permulaan, itu memang memberi kesan "pekerjaan yang tidak perlu".
sumber
Ketika Anda memiliki beberapa contoh database di dev, qa, produksi dan Anda ingin memiliki alat untuk secara otomatis melacak riwayat perubahan dan menerapkan perubahan secara cerdas (menerapkan perbedaan skema saat ini dan skema akhir), alat seperti liquibase atau flyway akan sangat berguna .
sumber
Saya percaya Liquibase sangat bagus ketika filosofi Anda adalah bahwa database adalah renungan. Filosofi ini telah menyebabkan sebagian besar database buruk dalam produksi - dan kebanyakan dari mereka buruk. Basis data harus dirancang dengan tampilan penuh dari keseluruhan sistem bisnis, tidak dibuat oleh pengembang aplikasi yang masing-masing bekerja di silo mereka sendiri. Metode terakhir menghasilkan penyelesaian, data yang tidak normal, hubungan yang buruk antar tabel, duplikasi area bisnis, dan keseluruhan sistem dengan biaya perawatan tinggi yang berantakan yang akan dibenci klien segera setelah penerapan karena masalah yang ditimbulkannya. Jika database dirancang untuk SECARA AKURAT mencerminkan hubungan bisnis, umurnya akan 5 kali lebih lama dan akan memenuhi tujuannya 5 kali lebih baik daripada database yang dirancang secara sepotong-sepotong seperti yang sayangnya kebanyakan.
Liquibase bukanlah masalah itu sendiri tetapi memungkinkan praktik pengembang aplikasi merancang database. Itulah masalahnya.
sumber
Saya pikir Mengapa liquibase dapat dijawab jika Anda membaca artikel di bawah ini http://shengwangi.blogspot.com/2016/04/liquibase-helloworld-example.html
Jika Anda membacanya dengan hati-hati, kemampuan untuk menurunkan versi ke versi yang lebih rendah dari versi yang lebih tinggi dengan bantuan perintah mvn atau CLI sederhana sangat berguna yang tidak Anda dapatkan jika Anda melakukan pendekatan untuk memasukkan file sql Anda ke GIT karena kemudian Anda harus menjalankan skrip tersebut secara manual dan juga Anda tidak memiliki set perubahan seperti: - siapa yang membuat penulis perubahan, dll.
sumber
Menjadi DevOps Person dari tim saya, saya lebih suka memiliki semua file SQL saya di satu tempat yaitu Di SCM (Manajemen Kode Sumber) saya
Juga selama fase CI / CD, Jika Skema DB dibuat bersama dengannya, Ini menghemat banyak waktu dan sumber daya. Anda tidak perlu meminta orang lain mengelola database Anda untuk klien itu.
ORM seperti Flyway, Liquibase, EF, dll. Membantu dalam mencapai hal ini.
sumber