Bir migration dosyasının çalışması, değişikliğin güvenli biçimde yayınlanabileceğini tek başına göstermez. Boş bir geliştirme veritabanında sorunsuz eklenen zorunlu alan, mevcut kayıtlar üzerinde farklı davranabilir. Codex ile migration incelemesinde bu nedenle yalnızca şema komutuna değil, verinin bugünkü durumuna ve uygulamanın yayın sırasına bakmak gerekir. Bu yazı belirli bir veritabanına ait sözdizimi vermek yerine inceleme sorularını somut bir örnekte toplar.

Değişikliği mevcut veriyle birlikte düşünün

Örneğimizde müşteriler tablosuna bildirim tercihi alanı ekleniyor. Yeni hesaplarda alanın değeri biliniyor; eski hesaplarda ise bulunmuyor. İlk soru, geçmiş kayıtların hangi değerle başlayacağıdır. Herkesi otomatik olarak aynı seçeneğe geçirmek teknik bir varsayım değil, ürün kararı olabilir. Codex'in böyle bir kararı migration içinde sessizce vermemesini isteyin.

Şema değişikliği öncesinde mevcut kayıt sayısı, boş değerler ve ilgili kısıtlar hakkında güvenli biçimde bilgi toplanmalıdır. İnceleme için gerçek müşteri verisini sohbet içine taşımak gerekmez. Anonim örnekler, sayısal özetler ve şema tanımı çoğu soruyu yanıtlamaya yeter. İstatistiklerin hangi ortamdan alındığı da kaydedilsin.

Uygulama sürümlerinin birlikte yaşayacağını hesaba katın

Yayın sırasında eski ve yeni uygulama süreçleri kısa süre de olsa birlikte çalışabilir. Yeni kodun beklediği alan henüz eklenmediyse hata çıkar. Eski kod kaldırılmış bir alanı okumaya devam ediyorsa benzer sorun oluşur. Bu nedenle şema değişikliği ve kod dağıtımının sırası ayrı bir inceleme başlığıdır.

Örnek görev metni:

Bildirim tercihi alanını ekleyen migration'ı salt okunur incele. Mevcut kayıtlar, varsayılan değer kararı, eski ve yeni uygulamanın birlikte çalışması ve geri dönüş etkisine odaklan. Canlı veritabanında komut çalıştırma. Veritabanı motoruna bağlı kilit veya işlem davranışını kullanılan sürümün resmî belgesinden doğrula; kesinleştiremediğin noktaları açık sorular olarak yaz.

Bu örnek, Codex'e inceleme yetkisi verir; canlı veriyi değiştirme talimatı içermez. Uygulama aşaması ayrıca planlanmalıdır.

Geri dönüşte verinin ne olacağını sorun

Şemayı geri almak ile veriyi eski haline getirmek aynı şey değildir. Bir alanı kaldıran geri dönüş, o alana yazılmış yeni bilgiyi silebilir. Bir dönüşüm iki değeri birleştiriyorsa önceki değerleri yeniden üretmek mümkün olmayabilir. İncelemede geri dönüş yolunun veri kaybını veya sınırlarını görünür kılın.

Büyük veri güncellemelerinde tek işlem yerine parça parça ilerleme gerekip gerekmediğini değerlendirin. Bunun doğru yöntemi kullanılan motor, tablo yapısı ve trafik koşullarına bağlıdır. Genel bir tavsiyeyi her projede geçerli kural gibi uygulamayın. Codex'in önerisi, gerçek sistemde ölçülebilen ve gözlemlenebilen bir denemeyle desteklenmelidir.

Doğrulamayı yalnızca boş veritabanında yapmayın

Temsili eski kayıtlar içeren yerel veya uygun izole ortamda geçişi deneyin. Yeni kayıt oluşturma, eski kaydı okuma ve tercih güncelleme akışlarını kontrol edin. İşlem başarısız olduğunda hangi durumda kalındığı da anlaşılır olsun. Sadece migration komutunun başarılı çıkışı, bu davranışları doğrulamaz.

Son inceleme notu; değişen şemayı, veri kararını, yayın sırasını ve geri dönüş sınırını birkaç açık paragrafta anlatmalıdır. Belirsiz bir nokta kaldıysa sahipliğini belirtin. Böyle bir çıktı, migration'ı küçük bir dosya değişikliği olarak görmek yerine veri ve uygulama davranışının birlikte değerlendirildiği bir yayın kararı haline getirir.

Resmî kaynak: OpenAI — Custom Code Review rules for Codex.