Azure’da Entity Framework Core İle Migration İşlemleri
Merhaba,
Bir önceki Azure’da Asp.NET Core API Projesi Yayınlamak başlıklı makalemde Azure’da bir Asp.NET Core API projesinin nasıl yayınlandığını ele almıştık. Bu içeriğimizde ise Azure bulutunda bulunan bir SQL veritabanına projede Code First yaklaşımı ile tasarlanmış herhangi bir veritabanının nasıl migrate edilebileceğini inceleyeceğiz.
Başlarken
İçeriğimize başlarken yukarıda adresi verilen önceki makalemizde örneklendirdiğimiz proje üzerinden devam edeceğimizi öncelikle bildiriyorum.
Azure’da SQL Veritabanı Oluşturulması
Herşeyden önce Azure’da bir veritabanı oluşturulması gerekmektedir. Bunun için https://portal.azure.com/ adresine giriniz ve “Azure hizmetleri” altında “SQL Veritabanları” sekmesine tıklayınız.
Ardından yeni bir SQL veritabanı oluşturabilmek için ya sol üst köşedeki “Ekle” ya da sayfa ortasındaki “SQL veritabanı oluştur” butonuna tıklayınız. Açılan sayfayı aşağıdaki gibi doldurunuz;
Yukarıdaki görüntüde olan alanları açıklarsak eğer;
1 numaralı alan; | Abonelik türümüzü ifade etmektedir. |
2 numaralı alan; | Kaynak grubunu ifade etmektedir. Kaynak grubu; bir Azure hesabı üzerinde birden fazla uygulama ya da veritabanı söz konusu olabilir. Burada her bir projeyi birbirinden ayırabilmek ve ilgili uygulamaları birbirleriyle bağdaştırabilmek için kaynak grubu bizlere bir isim alanı/namespace sağlamaktadır. Dolayısıyla bir önceki makalemizde Azure’da yayınladığımız projemizin kaynak grubuyla aynı ismi kullanıyoruz. |
3 numaralı alan; | Veritabanının adını ifade etmektedir. |
4 numaralı alan; | Veritabanı sunucusunu ifade etmektedir. Hemen altındaki “Yeni oluştur” alanına tıklayarak sağ tarafta açılan sekme üzerinden yeni sunucu bilgilerini girebiliriz. |
4.1 numaralı alan; | Veritabanı sunucusunun adı. |
4.2 numaralı alan; | Sunucu yöneticisi. Birnevi username. |
4.3 numaralı alan; | Veritabanı erişim şifresi.(1q2w3e!) |
4.4 numaralı alan; | Sunucunun barındırılacağı konum. |
Veritabanı sunucu bilgilerini girdikten sonra “Tamam” butonuna tıklayınız ve ardından “Gözden geçir + oluştur” butonuna tıkladıktan sonra aşağıdaki ekranla karşılaşacaksınız.
Bu ekranda da “Oluştur” butonuna tıkladığınız vakit SQL veritabanı oluşturulacaktır… Oluşturulduktan sonra açılan sayfada “Kaynağa Git” butonuna tıklayarak ilgili veritabanının portalına ulaşabilirsiniz.
Oluşturulan veritabanına hangi IP’lerin erişip erişemeyeceğini belirleyebilmek için güvenlik duvarı ayarı yapmamız gerekmektedir. Bu ayar için “Sunucu güvenlik duvarı ayarla” sekmesine tıklayarak açılan pencerede erişimine izin verilen IP değerlerinin yazılması gerekmektedir.
IP değerlerini yazdıktan sonra sol üst köşedeki “Kaydet” butonuna tıklayınız. Bu işlem neticesinde artık veritabanına erişebilir ve Code First aracılığıyla tüm çalışmayı migrate edebiliriz. Bunun için ilgili veritabanının connection string özelliğini elde etmemiz gerekmektedir.
Connection string’i elde edebilmek için yukarıda görüldüğü üzere veritabanı portalı üzerinden “Veritabanı bağlantı dizelerini göster” linkine tıklayınız.
Görüldüğü üzere oluşturduğumuz ve temel ayarlarını koordine ettiğimiz veritabanımıza uygun connection string’i bu sayfa bizlere vermektedir.
Bu adım neticesinde Azure’da ki çalışmamız sona ermiş ve sıra proje üzerinde gerekli konfigürasyonları yapmaya gelmiş bulunmaktadır.
Uygulamada Connection String’in Ayarlanması
Azure tarafında elde edilen connection string değerini “Startup.cs” dosyasında “ConfigureServices” metodu içerisinde “AddDbContext” middleware’i ile aşağıdaki gibi uygulamamıza ekliyoruz.
public class Startup { public void ConfigureServices(IServiceCollection services) { . . services.AddDbContext<AzureContext>(x => x.UseSqlServer("Server=tcp:azureexampledb.database.windows.net,1433;Initial Catalog=AzureExampleDB;Persist Security Info=False;User ID=gncy;Password=1q2w3e4r!;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;")); . . services.AddControllers(); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { . . . } }
Veritabanının Migrate Edilmesi
Tüm bu işlemler neticesinde artık veritabanını migrate edebiliriz.
Uygulamanın Son Halini Azure’da Publish Etme
Uygulamamızın önceki hali static verilerden ibaretti… Yapılan son çalışmalar neticesinde güncel halini kullanabilmek için veritabanından beslenir bir vaziyette publish etmemiz gerekmektedir.
Yukarıdaki görselden de görüldüğü üzere zaten bir önceki makalede oluşturduğumuz Azure profili üzerinden direkt olarak “Publish” butonuna tıklanması yeni sürümün yayınlanması için yeterli olacaktır.
Test Edelim
Azure’un bize vermiş olduğu endpoint’i tetikleyerek testimizi gerçekleştirebiliriz.
Gördüğünüz üzere, gayet başarılı bir şekilde çalışmaktadır. İlgili API’ın ömrünün Azure’un insafına kaldığını bilmeniz kaydıyla https://webapplication8820200112022315.azurewebsites.net/api/personel adresine tıklayarak birebir gözlemleyebilmek için şansınızı deneyebilirsiniz.
İlgilenenlerin faydalanması dileğiyle…
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…
1 Cevap
[…] önceki Azure’da Entity Framework Core İle Migration İşlemleri başlıklı makalemizde Azure üzerinde Entity Framework Core ile migrate işlemlerinin nasıl […]