2016-03-31 25 views
0

Veritabanı sürümlerimiz için liquibase kullanıyoruz. Veritabanındaki değişiklikleri TST, AT ve PROD gibi herhangi bir katmana dağıtmak için kullanıyoruz. Bir kere inşa edip aynı değişiklikleri her yere yayıyoruz ancak belirli katmanlara dağıtılması gereken belirli şeylere sahibiz. Bunun mümkün olup olmadığından emin değilim.Çalıştırma Ortamı, liquibase komut dosyasından özel değişiklikler

örn.

Uygulama URL'sini DB'de saklıyoruz ve her ortamda (INT, UAT, PROD) kendi farklı uygulama URL'sine sahip olduğunu varsayalım. Bunu liquibase betiğini kullanarak nasıl yapabiliriz?

cevap

1

Ne istediğinizi gerçekleştirmek için, contexts ve labels öznitelikleri ve komutlar için kullanılabilir özniteliklerini kullanabilirsiniz. İşte

This Liquibase blog post goes into detail.

o makaleden bir alıntı anlatan Bağlam geçerli:

Liquibase içinde Bağlamlarda

uzunca bir süre mevcut olmuştur ve onlar changesets “etiketleme” Onlar olabilirsiniz bir yolu olarak öncelikle başladı Çalışma zamanında seçilen . Yaygın kullanımlardan biri, test verilerini context = ”test” olarak ekleyen changeSets'i işaretlemektir. Böylece, geliştirme ve QA ortamlarında likiditesini –contexts ile çalıştırabilirsiniz. test verilerini elde etmek için bağlamlar = test verisine sahip değildir. Bağlamlar, özellik kümelerini (context = ”shoppingCart”) veya (context = ”pro”) veya hatta müşteri (context = ”acme_inc”) gruplarını içerecek şekilde changeSets'i işaretlemek için de yararlıdır. Karmaşık vakalarında, context = ”acme_inc, pro” gibi bir changeSet'e birden çok bağlam uygulanabilir ve çalışma zamanlarında –contexts = free, qa gibi çalışma zamanı seçilebilir.

Liquibase 3.2 ile, changeSets'deki içerik ifadeleri için desteğe eklenmiştir. Şimdi, changeSet'inizi tanımlarken, context = ”! Test” veya context = ”qa veya (acme_inc ve dev) gibi karmaşık mantığı belirtebilirsiniz. Bağlam mantığı yalnızca changeSet tanımınızda belirtilebilir. Liquibase'i çalıştırırken, yine de çoklu bağlamları belirtebilirsiniz, ancak yalnızca 'un geçerli Liquibase çalışması için geçerli olduğu tüm bağlamları listeliyorsunuz.