2016-04-01 8 views
0

私たちはSQL Server用のLiquibaseを使用しようとしており、コンテキストとラベルに関する質問があります。 Dev、TST、およびProd環境にデプロイするときは、SQLサーバーのシノニムとenv固有のリンクサーバーを使用します。たとえば、TSTにデプロイする場合、リンクサーバーとシノニムはSERVER_Aを指しますが、ProdはSERVER_Bを指すはずです。リリース時にどの環境に展開しているかに応じて、Liquibaseが自動的に正しいSERVER値にスワップする方法はありますか?環境固有のSQLリンクサーバーと同義語の定義

答えて

0

これをサポートするために使用されるLiquibaseの機能は、labels, contextsおよびchangelog parametersです。例では、完全に正しくないように私は、あなたが欲しいものを作成するためのSQL Serverの構文を知らないが、主なものは、あなたが使うことができることです

<databaseChangeLog 
     xmlns="http://www.liquibase.org/xml/ns/dbchangelog" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" 
     xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd 
     http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd"> 

    <property name="linked.server" value="SERVER_A" context="TST"/> 
    <property name="linked.server" value="SERVER_B" context="Prod"/> 

    <changeSet id="1" author="Brian"> 
     <sql>CREATE LINKED SERVER STATEMENT SO LINKED SERVER IS ${linked.server}</sql> 
    </changeSet> 
</databaseChangeLog> 

:あなたは、あなたのchangelogでこのような何かを持っているかもしれません変数参照${linked.server}がそこにあります。 SQL ServerのシノニムまたはリンクサーバーにはLiquibaseリファクタリングが組み込まれていないため、<sql>タグを使用するか、新しい<synonym>および/または<linkedServer>タグを実装する独自のLiquibase拡張機能を記述することができます。あなたがliquibase updateを実行すると

あなたは

--context=TSTまたは--context=Prod

引数を指定しますし、適切な値が代入されます。

関連する問題