Bugün veritabanı dağıtım tekniklerini tartışıyoruz, mevcut işlemimizde son zamanlarda birkaç başarısızlık yaşadık ve bir dağıtımı geri almak istediğimiz durumları gördük, ancak uygulamanın eski sürümü hiçbir zaman veri tabanı.
Bir yandan, sürüm yükseltme talimatınız ve sürüm düşürme talimatınız (ister SQL'de ister uygulama dilinizde yazılmış olsun) ve uygulamanızın hangi sürüme ulaşması gerektiğini bildiği Geçiş tarzı dağıtımlar vardır.
Bunlar basittir ve sık sık geri dönmeyeceğimiz için, geliştiriciler basitlere meraklıdır. Ancak, alan / tablo eklediğinizde riskler vardır ve geri dönmeden önce bu alan doldurulur. Ya da daha kötüsü, önceki sürümle ilgili verileri bıraktığınız yerde.
Öte yandan, geri almanın Göçler kadar sert olmadığı bir yükseltme, geri alma, ileriye doğru yaklaşımı düşünebiliriz. Örneğin, yükseltme boş bırakılamaz bir alan ekleyebilir; rollback, eski uygulamanın umursamaması için boş bırakılabilir yapar; rollforward null alanları doldurur ve tekrar boş bırakılamaz yapar.
Bu verileri korur ancak hem kodlamak hem de test etmek için karmaşıktır (ne yazık ki, otomatik entegrasyon testlerimiz hemen hemen yok ve bunu düzeltirken, bu arada bir sorunumuz var).
Bunlarla ilgili sorunları hafifletmenin güvenli yolları var mı? Dikkate almam gereken başka seçenekler var mı? Paylaşmak istediğin kötü deneyimler yaşadın mı?