SSDT, Liquibase / Flyway ile yaptıkları gibi farklı bir yaklaşımla karşılaştırılabilir. SSDT ile geliştirme ortamına sahip olursunuz, böylece tanımlamaya gitmek, referanslar ve zekâ bulmak ve bir projeyi bir dacpac'a derleme ve daha sonra bu dacpac'ı bir veritabanına dağıtma gibi şeyler elde edersiniz.
Bir deloyment işlemi yapmanın SSDT yolu (ve redgate sql karşılaştırma yolu), aşağıdaki gibi bir tabloyu değiştirmek istiyorsanız, ne istediğinizi bildirmektir:
create table a(id int)
şuna benzer bir tabloya:
create table a(id int, another_column varchar(12))
SSDT ile sadece tablo tanımınızı ikincisine değiştirirsiniz ve SSDT'nin nasıl yükseltileceği konusunda endişelenmesine izin verirsiniz (tabloyu değiştirebilir, sütun ekleyebilir veya sütun sırası değişikliği yapabilir, böylece tabloyu yeniden oluşturmanız gerekir).
Liquibase (DbUp, ReadyRoll, manuel yöntemler vb.) İle yaptığınız şey bu durumda alter tablosunu kendiniz yazmak ve komut dosyalarını doğru sırada çalıştırdığınızdan emin olmaktır, bu senaryoyu göz önünde bulundurun:
- Sürüm 1 - Tabloda sütun merhaba oluşturun
- Sürüm 2 - Merhaba sütunu joe_blogs olarak yeniden adlandırın
- Sürüm 3 - joe_blogs sütununu merhaba olarak yeniden adlandır
- Sürüm 4 - joe_blogs sütunu oluştur
Sürümlerden herhangi biri kaçırılırsa, bir sonraki sürümlerin hiçbiri devam edemez.
Yükseltme komut dosyalarının (Liquibase, DbUp, vb.) Faydaları:
- Senaryolar üzerinde tam kontrole sahipsiniz
- DBA'lar / Geliştiriciler buna alışkındır
Karşılaştırma / birleştirme avantajları (SSDT, Redgate SQL Compare):
- Yükseltme komut dosyaları yazmak zorunda değilsiniz
- Herhangi bir belirli sürüme ulaşmak kolaydır, sadece bu sürümü karşılaştırın ve birleştirin
Yükseltme komut dosyalarının sakıncaları:
- Sırayla çalıştırılmalıdır
- Hata yapmayan insanlara güvenin
- Özellikle çok fazla değişikliğiniz varsa yavaş olabilir
- Ekibiniz farklı ortamlardaki (dis, test, sahneleme, prod vb.) Çok disiplinli veritabanları olmadığı sürece, genellikle herhangi bir testi geçersiz kılan senkronizasyon dışı hale gelir
- Bir sürümü düşürmek, daha önce yazmış olduğunuz tüm komut dosyalarının tersini yazmak anlamına gelir
Karşılaştırma / birleştirme kullanmanın sakıncaları:
- Araçlar% 100 güvenilir değil, belki de haksız
- SSDT çalışan bir proje gerektirir, birçok veritabanı aslında derlemeyen veya çalışmayan kodlara sahiptir (bırakılan tabloları düşünün, ancak prosedürleri vb. Düşünmeyin), bunu miras aldığım yaklaşık 8/10 veritabanında gördüm :)
- Birçok DBA / geliştirici SSMS / not defteri geliştirmeden vazgeçmekte tereddüt ediyor
Şahsen ben SSDT'nin profesyonel bir gelişim ortamı olduğunu düşünüyorum ve bu sadece kendi için bir araç olan yükseltme komut dosyaları yazmak yerine yararlı kod ve testler yazmaya konsantre olabileceğim anlamına geliyor.
Fikirler istediniz, işte gidiyorsunuz :)
ed