ORM Migrasyonu Nedir?
İngilizce: ORM Migration
ORM migrasyonu, Prisma veya Drizzle gibi ORM araçlarıyla veritabanı şema değişikliklerini kod dosyaları üzerinden yönetme pratiğidir.
ORM Migrasyonu Nedir?
ORM migrasyonu, veritabanı şemasındaki değişiklikleri kodla tanımlayıp versiyonlanmış migration dosyaları üzerinden uygulama pratiğidir. Yeni kolon ekleme, tablo oluşturma, indeks tanımlama veya ilişki değiştirme gibi adımlar kayıt altına alınır.
Migration dosyası çoğu zaman ORM aracı tarafından üretilen SQL’i içerir. Geliştirici şema modelini değiştirir, araç farkı hesaplar, migration dosyası oluşturur ve bu dosya geliştirme, staging ve production ortamlarında sırayla çalıştırılır.
Süreç Nasıl İlerler?
- Model veya schema dosyasında değişiklik yapılır.
- ORM aracı migration üretir veya geliştirici elle yazar.
- Oluşan SQL gözden geçirilir; veri kaybı riski kontrol edilir.
- Migration test veritabanında çalıştırılır.
- Deploy sırasında production veritabanına uygulanır.
Prisma Migrate, Drizzle Kit, TypeORM migrations, Django migrations ve Rails Active Record migrations bu yaklaşımın farklı ekosistemlerdeki örnekleridir.
İş Dünyasında Kullanımı
ORM migrasyonu, ekiplerin veritabanı değişikliklerini deploy sürecinin parçası haline getirmesini sağlar. Böylece “kim production’da hangi kolonları ekledi?” sorusu git geçmişi ve migration tablosu üzerinden izlenebilir.
Riskli noktalar veri silen migration’lar, büyük tablolarda kilitlenme, rollback planının olmaması ve uygulama koduyla şema değişikliğinin aynı anda uyumsuz deploy edilmesidir. Genel migrasyon planı içinde ORM migration dosyaları mutlaka yedekleme ve geri dönüş stratejisiyle ele alınmalıdır.
İlgili Terimler
Veritabanı göçü, tablo şeması ve veri yapısını sürümler halinde değiştirip uygulama koduyla kontrollü uyumlu tutar.
MigrasyonVeritabanı migrasyonu, tablo, kolon, indeks ve veri dönüşümü değişikliklerini sürümlü dosyalarla kontrollü şekilde uygular.
ORMORM, veritabanı tablolarını nesne olarak temsil eden; SQL yazmadan veritabanı işlemi yapılmasını sağlayan kütüphaneler bütünüdür.