İçeriğe geçin

Veritabanı değişikliği içeren yazılım sürümünü hazırlamak

Koda geri dönmek, değişmiş veritabanıyla uyumu kendiliğinden sağlamaz. Tam bir test örneği, geçişte ve dönüşte nelerin kontrol edileceğini gösteriyor.

Philipp Reuter2 dk okuma
Kod simgeli, mor vurgulu yazılım fişi ve farklı oyuk biçimleri olan iki ayrı halka.

Yazılım sürümü geçişinde uygulama ve veritabanı bazen birlikte değişir. Bu nedenle dönüş yolu, önceki program sürümünden fazlasını dikkate almalıdır. Hangi kod, yapılandırma ve veri yapısının birlikte çalıştığını kaydedin.

Aşağıdaki varsayımsal portal örneği planlanan bir testtir. Gerçek müşteri veritabanında değişiklik anlatmıyor.

Dönüşü aynı veri durumunda sınayın

Mevcut V1 uygulaması müşteri adlarını customer_name alanından okuyor. Yeni V2 uygulamasının display_name alanını okuması planlanıyor. İlk düşünülen akışta eski sütun kaldırılıyor. Ardından yeni uygulama eksik yapılandırma nedeniyle başlamıyor.

Adım

Adımdan sonra veritabanı

Örnekteki sonuç

Geçişten önce

Eski ad sütunu mevcut

Mevcut uygulama çalışır

Planlanan değişiklikten sonra

Yalnız yeni ad sütunu mevcut

Yeni uygulama yapılandırma nedeniyle başlamaz

Yalnız eski kodu yeniden devreye alma

Yine yalnız yeni ad sütunu mevcut

Eski uygulama beklediği sütunu bulamaz

Eski kodu yeniden devreye almak veri yapısını geri döndürmez. Dağıtım aracındaki geri dönüş düğmesi bu uyumsuzluğu kendiliğinden çözmez.

Uyumlu bir geçiş planlayın

Olası bir alternatif aşamalı geçiştir: Önce eski sütun korunur ve yenisi eklenir. Mevcut değerler izlenebilir şekilde taşınır. Ekip hangi alanın esas olduğunu ve geçiş sırasında değişikliklerin nasıl tutarlı kalacağını belirler.

Ayrı test ortamında iki uygulama sürümü de bu ara veri yapısıyla sınanır. Bir adı değiştirip iki sürümden de doğru okumak buna dahildir. Sonraki değerler yalnız bir alana yazılıyorsa tek seferlik kopyalama yetmez.

Geçiş doğrulandığında ve eski sürüme artık dönüş yolu olarak ihtiyaç kalmadığında eski alanın kaldırılması planlanır. Bu, hangi eski sürümlerin hâlâ kullanılabileceğini yeniden değiştirir. Adım için ayrı karar gerekir.

Geçişten sonraki veriyi de düşünün

Eski bir yedek önceki yapıyı içerebilir. Bu sırada yeni siparişler alındıysa yedekte bulunmayabilirler. Geri yükleme bu işlemleri fark ettirmeden silmemeli. Sonradan hangi verilerin geldiği ve nasıl uzlaştırılacağı kurtarma planına dahildir.

Değişikliğe göre planlı bakım aralığı veya yeni sürümde hedefli bir düzeltme daha uygun olabilir. Aşamalı geçiş, kesintisiz güncelleme için genel bir söz değildir.

Denemenin sonucunu kaydedin

Sınanmış sürümü, yapılandırmayı, veri durumunu ve başarısızlıkta karar verecek kişiyi belgeleyin. Testte bir siparişi hedefte doğrulanmasına kadar izletin, sonra planlanan dönüşü uygulayın. Hangi verilerin korunduğunu ve hangi kısıtların bulunduğunu yazın.

Böylece canlı geçişten önce dönüş yolunun uygulamayla ve verileriyle gerçekten uyuşup uyuşmadığı görünür olur.

Kaynaklar

Yazan

  • Philipp ReuterYazılım Kalitesi EditörüPhilipp Reuter, ASES'te yazılım testleri ve yeni sürümlerin hazırlanması üzerine yazar. Yazıları hata analizini, kabul testlerini ve mevcut uygulamalardaki değişikliklerin kontrolünü ele alır.

ASES'i takip edin

Devamını okuyun

Tüm yazılar

ASES ile Bulut ve işletim

Barındırma, yayına alma, bakım ve destek