DB Migration

DB Migration (Veritabanı Taşıma), bir yazılım uygulamasının bir veritabanından başka bir veritabanına, sık kullanılan durumlar arasında veri taşıma, veritabanı şeması güncellemeleri ve veri depolama teknolojileri değişiklikleri yapma işlemidir.

  • Veritabanı Şema Değişiklikleri: Bir uygulamanın veritabanı şemasını güncellemek için kullanılır. Yeni bir sütun eklemek, mevcut bir tabloyu yeniden adlandırmak veya tabloya yeni bir endeks eklemek gibi işlemler içerebilir.

  • Veritabanı Yeniden Yapılandırma: Bir uygulamanın veritabanı yönetim sistemini veya teknolojisini değiştirirken kullanılır. Örneğin, bir uygulama SQL veritabanından NoSQL veritabanına geçerse, bu tür bir dönüşüm gerekebilir.

DB Migration, veri bütünlüğünü korumak, veri kaybını önlemek ve veritabanı performansını optimize etmek gibi hedefleri taşırken, yazılım geliştiricilerin ve veritabanı yöneticilerinin veri taşıma işlemini başarıyla gerçekleştirmelerine yardımcı olur.

Platform içerisinde DB Migration işlemleri için, Header’da yer alan Roket ikonuna tıklayın. Açılan pencere içerisinde Download source code veya Publish butonlarından birine tıklayın. Generate edilen Backend ve Frontend kodu size iletilen e-posta içerisinden alabilirsiniz.

Backend kodları içerisinde SQL scriptler yer almaktadır.

SQL scriptler, uygulamanın bağlı olduğu Managed DB içerisindeki oluşturulmuş tablolarda yer alan foreign key, primary key, index gibi yapıları başka bir veri tabanında yaratmak için gerekmektedir.Uygulamanın On-Premde veya başka bir ortamda yayınlanması sürecinde uygulama içerisinde yer alan veritabanının kurulum yapılan veritabanı ile birebir uyum sağlaması önemlidir.

SQL scriptleri backend dosyası içerisinde yer almaktadır, Ancak uygulama backendi ayağa kalktığında bu scriptler otomatik olarak çalışır durumda değildir.

Uygulamanın Backendi preview alındığında Db Migration adında API gelmektedir..

  • Get /v1/api/DbMigration/checksum/current

Bir kod generate ederken onun bağlı olduğu veritabanının o anki checksum’u alınmaktadır.

Checksum, verilerin belirli bir algoritma dayalı matematiksel bir değerini ifade eder. Bu değer, verilerin toplamını temsil eder. Her veri parçasının bir özet değeri vardır.

Veritabanının mevcut durumunu ifade eder. Bu, şu anki veritabanı şemasını veya verilerini temsil eder.

  • Get /v1/api/DbMigration/checksum/source:

DB Migration işlemindeki kaynak veritabanını veya veritabanı şemasını ifade eder. Bu, mevcut durumun değişeceği yerdir.Veritabanındaki her şeyin alındığı yerdir.

  • IsSame (Aynı mıdır?):

"IsSame" veya "Aynı mıdır?" terimi, mevcut veritabanı şeması veya verileri ile hedef veritabanı şeması veya verileri arasındaki karşılaştırmayı ifade eder. DB Migration işlemi, bu iki durumu karşılaştırarak değişiklikleri belirler.

  • ExecuteMigration (Migrasyonu Gerçekleştir):

ExecuteMigration veya "Migrasyonu Gerçekleştir" terimi, belirlenen değişiklikleri uygulama işlemini ifade eder. Bu işlem, mevcut durumu hedef duruma dönüştürmek için şema güncellemelerini gerçekleştirir. Yani, Generate edilen scriptlerin ard arda çalıştırılmasını sağlamaktadır.

SQL Scriptleri, veritabanı şemasının değiştirilmesi veya güncellenmesi için kullanılan metin dosyalarıdır. Bu scriptler, mevcut veritabanı şemasının yapısını değiştirme, yeni tablolar ekleme, mevcut tabloları güncelleme, indeksler oluşturma veya silme gibi işlemleri içermektedir.

SQL Script içerisinde her bir kolon veya her bir tablo yaratılırken o tabloya veya o kolona UNIC ID generate edilip atanmaktadır. Örneğin platform içerisinde Datasource alanında yeni bir tablo oluşturulduğunda o tabloya ait bir Id oluşturulmaktadır. Oluşturulan tablo içerisindeki kolonlarında aynı şekilde Id’si oluşturulmaktadır. Dolayısıyla DB Migration çalıştırılırken bu Id’ler source kod üzerinden alınır. Bu Id ile bir kolonu bulup onun ismi ile en son verilen kolonun isminin aynı olup olmadığı karşılaştırılır.Bunun çıktısı olarak Rename’ler bulunmaktadır.

DB Migration sürecinin nasıl çalıştığını daha iyi anlamak için aşağıdaki adımları inceleyebilirsiniz:

İlk olarak, mevcut veritabanı şeması ve verileri Current olarak kabul edilir.

DB Migration işlemi, Source (kaynak) veritabanını veya şemasını inceleyerek hangi değişikliklerin gerektiğini belirler.

IsSame (aynı mıdır?) karşılaştırması yapılır ve farklılıklar tespit edilir.

Değişiklikler belirlendikten sonra ExecuteMigration adımı gerçekleştirilir. Bu, mevcut veritabanı şemasını veya verilerini hedeflenen şema veya verilere dönüştürmek için gereken güncellemeleri uygular.

DB Migration işlemi, veritabanı şemasının güncellemesini daha sistemli ve kontrol edilebilir hale getirir.

Kısaca, Download source’a tıklandığında bu scriptler kuika tarafından arkaplanda yaratılmaktadır.Bu scriptler kodun içerisine gömülür. Bu scriptlerin çalıştırılması için de dışarıya bir API açılır. Bu API ismi ise Swagger içerisinde DbMigration altında excutemigration ‘dır. Bu API çalıştırıldığında arka planda oluşturulan SQL scriptler sırasıyla çalıştırılmaktadır. Bu işlemler sonucunda veri tabanı karşı tarafta Migrate edilmiş olmaktadır.

Last updated