Selama masa perkembangan yang berat, skema basis data berubah dengan cepat dan terus-menerus, dan pada saat dorongan mingguan kami untuk pengembangan beta muncul, skema tersebut telah berubah begitu banyak sehingga satu-satunya pilihan yang masuk akal adalah dengan menghapus semua tabel yang saya bisa dan salin versi baru dari basis data dev saya. Jelas, ini tidak akan berfungsi begitu kami meluncurkan, karena nuking data produksi adalah resep untuk bencana, jadi saya bertanya-tanya strategi apa yang ada di luar sana untuk mengelola perubahan skema database dari satu versi / revisi ke yang lain?
Beberapa yang saya temukan atau alami:
- Nuke-and-dump langsung dari satu basis data ke basis data lain (apa yang saya lakukan sekarang)
- Mempertahankan file UPDATE.sql dengan pernyataan SQL yang dijalankan melalui skrip atau dengan tangan.
- Mempertahankan file update.php dengan nilai "db-schema-version" yang sesuai di database aktif
Opsi ketiga tampaknya menjadi yang paling masuk akal, tetapi masih ada kemungkinan query SQL yang dibangun dengan buruk gagal di tengah-skrip, meninggalkan database dalam keadaan setengah-diperbarui, mengharuskan pemulihan cadangan.
Sepertinya bukan masalah, tapi itu memang terjadi, karena kita sebagai sebuah tim, kita menggunakan phpMyAdmin, dan sepertinya aku bahkan tidak bisa mengandalkan diri saya sendiri mengingat menyalin pernyataan SQL yang dieksekusi untuk menempel ke file update.php. Setelah Anda menavigasi ke halaman lain, saya harus menulis ulang pernyataan SQL dengan tangan, atau membalikkan perubahan saya dan melakukannya lagi.
Saya kira apa yang saya harapkan adalah solusi yang tidak memengaruhi alur kerja pengembangan kami yang sudah mapan?
update.php
atauupdate.sql
file dalam lingkungan pengujian sebelum menerapkannya ke database aktif, kan? Dan PHPMyAdmin disalahkan atas kemungkinan masalah yang mungkin terjadi dalam skrip, mungkin sekarang saatnya untuk melihat ke alat yang berbeda / lebih baik?