Pertimbangkan pengaturan berikut:
- DB produksi
- A dev db, di mana perubahan skema dibuat untuk mengaktifkan fitur baru
Ketika pengembangan fitur baru selesai, saya harus memperbarui skema prod db secara manual sampai pg_dump --schema-only
pada kedua DB identik. Proses ini rawan kesalahan dan membosankan.
Jadi, saya mencari alat yang dapat:
- Perlihatkan ringkasan perbedaan antara dua skema (seperti
diff
). Perhatikan bahwa saya tidak mencari perbedaan tekstual dari skema, tetapi alat yang lebih rumit yang dapat menarik kesimpulan seperti "TabelX
memiliki kolom baruY
". - Otomatis-menghasilkan kode SQL yang akan mengkonversi satu skema ke yang lain (seperti
patch
)
Apakah ada alat diff / patch skema yang dapat membantu saya mengonversi skema prod ke skema dev yang lebih maju?
postgresql
schema
Adam Matan
sumber
sumber
Jawaban:
Maaf membangkitkan kembali pertanyaan lama
Baru-baru ini saya telah menggunakan
0xDBEDataGrip alat manajemen database oleh JetBrains.Ini mendukung beberapa mesin basis data, dalam IDE Jetbrains yang luar biasa, dan fitur utama yang menurut saya berguna adalah kemampuan untuk
diff
2 tabel (DEV dan PROD).Di bawah ini adalah tangkapan layar dari aksi diff (dalam hal ini hanya ada satu perbedaan kolom). Tangkapan layar adalah hasil dari tombol "Gabung Kanan" di bagian atas, menghasilkan SQL yang diperlukan untuk membawa tabel kanan ke awal.
Semoga alat baru ini membantu.
sumber
Database
menu sebelah kiri , pilih 2 tabel yang ingin Anda bandingkan (dengancmd/ctrl + click
), klik kanan dan pilihCompare
Gunakan liquibase .
Ini mendukung diff , menghasilkan db dari awal, menambal db, mengembalikan db, dan banyak hal lainnya.
Anda dulu harus menulis semuanya dalam XML dengan liquibase, tetapi tidak lagi. Anda dapat menulis 99% dari itu dalam dialek SQL yang Anda pilih. Contoh:
Anda harus menyimpan changelog liquibase Anda di git atau apa pun.
sumber