Veri

TableSchema ile veritabanı yapısı yükseltmeleri: karşılaştır, planla, uygula

Bu yazı, bir .NET ERP çerçevesinde tablo tanımının (TableSchema) veritabanı yapısını nasıl güncellediğini anlatıyor. Yükseltme, betik yerine mevcut veritabanı durumunu karşılaştırıyor ve işlemi karşılaştır, planla, uygula diye üç adıma ayırıyor. Veri içeren tablolarda ALTER ile rebuild arasındaki farkı önceden görmek isteyen geliştiriciler için pratik bir bakış sunuyor.

DEV Community: #dotnet Jeff Tsai
Yayın tarihi
Okuma süresi
15 dk okuma
agent çalıştırması #16
agent çalıştırması #16
Orijinale git dev.to

Bu haberi bildir

Özette bir hata mı var, ya da bu içeriğin sahibi misin? Mesajın doğrudan bana e-posta olarak gelir.

Mesaj türü

Kilit noktalar

  • Yükseltme, sürüm betikleri yerine veritabanının mevcut halini tanımla karşılaştırır; başarılı bir çalıştırma sonrası tüm sütunlar tanımla eşleşir.
  • Plan adımı veritabanına dokunmadan ALTER, rebuild veya değişiklik yok sonucunu üretir; kuru çalıştırma ile tespit edilebilir.
  • Rebuild, tabloyu geçici tabloya kopyalayıp yeniden adlandırır; büyük tablolarda kilitlenme süresi saatlere çıkabilir.
  • Tip, uzunluk ve nullability değişiklikleri ALTER ile yapılır; aile değiştiren değişiklikler rebuild gerektirir.
  • Tanımda olmayan sütunlar silinmez; sütun kaldırma otomatik yapılmaz.

Yazar, bir ERP çerçevesinde tablo yapısını belirleyen TableSchema tanımının, veritabanındaki fiziksel yapıyı nasıl yönettiğini anlatıyor. Temel fikir, sürüm numaralı migration betikleri yerine her yükseltmede veritabanının mevcut durumunu tanımla karşılaştırmak. Fark, yapılacak işlem planı olarak önce hesaplanıyor, ardından uygulanıyor. Plan, işlemin ALTER mi yoksa tabloyu baştan kuran rebuild mi olduğunu gösteriyor; rebuild, büyük tablolarda bakım penceresi gerektirebilir.

Yazıda ayrıca tip eşlemesinin çerçeve tarafında tutulması, beş aşamalı ALTER akışı ve bir aşama hata verdiğinde yeniden çalıştırmanın neden tam geri alma yerine tercih edildiği ele alınıyor. Çerçeve, sütun silmeyi bilerek desteklemiyor. Ayrıntılar ve kod örnekleri için orijinal yazıya göz atmak faydalı olur.

Gerçek dünyada kullanımı

  • Milyonlarca satır içeren bir sipariş tablosunda bir sütunun uzunluğunu artırmadan önce rebuild gerekip gerekmediğini kontrol etmek.
  • Birden fazla veritabanını destekleyen bir ERP ürününde aynı tanımla SQL Server ve PostgreSQL şemalarını yönetmek.
  • Üretimde elle değiştirilmiş bir veritabanını, yeniden çalıştırılabilir bir yükseltmeyle tanıma hizalamak.

Neden önemli

Veri içeren tablolarda şema değişikliğinin kesinti gerektirip gerektirmediğini dağıtımdan önce bir plan çıktısından okuyabilirsiniz. Tanım ile veritabanı arasındaki uyumsuzluğu betik sırası yerine yeniden çalıştırılabilir karşılaştırmayla kapatmak, üretim dağıtımlarını daha öngörülebilir kılar.

Bu özet, DEV Community: #dotnet üzerindeki orijinal yazıdan agent tarafından üretildi. Yazının tamamı ve tüm hakları ilgili yazara/yayıncıya aittir. Orijinal yazıya git

Benzer haberler

Geri bildirim

Bir hata mı buldun, bir fikrin mi var? Yazdığın mesaj doğrudan bana e-posta olarak gelir.

Mesaj türü