Veritabanı Göçü (Schema Migration) Nedir?

İngilizce: Database Migration

Veritabanı göçü, tablo şeması ve veri yapısını sürümler halinde değiştirip uygulama koduyla kontrollü uyumlu tutar.

Veritabanı Göçü (Schema Migration) Nedir?

Veritabanı göçü, tablo, kolon, indeks, kısıt ve bazen veri dönüşümlerinin sürümlenmiş adımlarla değiştirilmesidir. Amaç veritabanı şemasıyla uygulama kodunun aynı beklentide kalmasıdır.

Nasıl Çalışır?

Her değişiklik bir migration dosyasıyla kaydedilir: yeni kolon ekleme, kolon tipini değiştirme, indeks oluşturma, tablo bölme veya varsayılan değer set etme gibi. Bu dosyalar geliştirme, staging ve production ortamlarında sıralı çalıştırılır. Araçlar hangi migration’ın uygulandığını ayrı bir tabloda takip eder.

Prisma, Drizzle, Rails, Django ve Flyway gibi araçlar schema migration sürecini yönetebilir. Prisma gibi ORM’lerde migration, model tanımıyla veritabanı arasındaki farkı görünür kılar.

Üretimde Dikkat Edilecekler

Büyük tablolarda kilitlenen ALTER TABLE komutları kesintiye yol açabilir. Bu nedenle geniş değişiklikler küçük adımlara ayrılır: önce geriye uyumlu kolon eklenir, kod iki alanı da destekler, veri arkadan taşınır, sonra eski kolon kaldırılır. Buna expand-contract yaklaşımı denir.

Migrasyon yalnızca dosya taşıma anlamına gelmez; veritabanında şema güvenliği, yedek, rollback planı ve izleme gerektirir. ORM migrasyonu yapılırken otomatik üretilen SQL’in üretim etkisi mutlaka incelenmelidir.