Hem RedGate hem de Visual Studio'nun veritabanı projesini denedim ve veritabanı tanımını veritabanı projesinde depolamayı tercih ediyorum. Veritabanı çözümün bir parçası olur olmaz, tercih ettiğiniz kaynak kontrol sağlayıcısını kullanabilirsiniz. Çoğu mükemmel Visual Studio entegrasyonuna sahiptir.
SSDT araçlarıyla, şema karşılaştırmaları kolayca yapabilmenizi ve şema yükseltme komut dosyaları oluşturmanızı sağlayan veritabanı tanımının 'en son sürümüne' sahipsiniz.
Bununla birlikte, şema genellikle denklemin sadece bir parçasıdır. Gerçek hayatta, veritabanlarının zaten çok fazla veriye sahip olduğu ortaya çıkıyor. Ve kullanıcılarım, kaybettiklerinde oldukça hayal kırıklığına uğruyorlar.
Bu nedenle, v1.0'ı kullanıma sunduğumda, yükseltme komut dosyalarını korumak için gerekli ihtiyaçlar artar. Bazen bunlar sadece şema değişiklikleri içerir, ancak birçok kez başka bir tablonun içeriğine göre varsayılanlar oluşturmam gerekiyor, veri vb. Ekilene kadar belirli bir kısıtlamayı serbest bırakmam gerekiyor. Genellikle şemayı yükseltmek tamamen kesmez. Benim tercihim bu yükseltme komut dosyasını veritabanı projesinde ayrı bir klasörde de kullanmaktır. Bunlar genellikle 'v1.0'dan v1.1'e yükseltme' gibi görünecektir.
Veritabanlarımda her zaman geçerli sürüm numarasını söyleyen bir referans tablosu var, böylece uyumsuz yükseltmeleri engelleyebilirim. Yükseltme komut dosyalarındaki ilk ifade, geçerli sürümü kontrol eder ve beklenenden farklı olup olmadığını kurtarır.
Veritabanı projelerinin bir diğer yararı da, aynı şemaya dayalı olarak farklı veri kümelerini dağıtabilmektir. Geliştirme, KG ekibi, kullanıcı kabul testi ve otomatik entegrasyon testleri için farklı bir veri setim var. Bir veritabanı projesinde yalnızca 1 dağıtım sonrası komut dosyası olabileceğinden, buradaki hile, 'ana' projeye başvuran yeni bir veritabanı projesi yapmak ve özel veri kümesini bu projenin dağıtım sonrası süreçlerinin bir parçası haline getirmektir.
Bunlar benim 2 sentim, Ne kadar ilerlerseniz, her şeyden önce, size ve ekibinize uymalı ve umarım ortak görevlerin çoğunda sizi desteklemelidir.