/ / Environmentálne špecifické SQL linkovaný server a definície synonym - liquidibase

Špecifické pre SQL špecifické prostredie a definície Synonymum - liquibase

Snažíme sa používať Liquibase pre SQL Server aMáte otázku týkajúcu sa Kontextov a menoviek. Pri nasadzovaní do prostredia Dev, TST a Prod využívame synonymá servera sql a prepojené servery, ktoré sú špecifické pre prostredie env. Napríklad pri nasadení na TST odkazovaný server a synonymum budú ukazovať na SERVER_A, ale Prod by mal ukazovať na SERVER_B. Existuje spôsob, ako Liquibase automaticky prepínať správnu hodnotu SERVER v závislosti od prostredia, v ktorom sa nachádzame v čase vydania?

odpovede:

0 pre odpoveď č. 1

Funkcie Liquibase, ktoré sa používajú na podporu tohto, sú etikety, kontexty, a parametre changelog, V zozname zmien môžete mať niečo podobné:

<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>

Neviem, či je syntax Sql servera pre vytváranie toho, čo chcete, takže príklad nie je úplne správny, ale hlavná vec je, že môžete použiť premennú referenciu ${linked.server} tam. Neexistuje vstavaný Liquibase refactoring pre SQL Server Synonyms alebo Prepojené servery, takže môžete použiť buď <sql> alebo napíšte svoje vlastné rozšírenie Liquibase, ktoré implementuje nové <synonym> a / alebo <linkedServer> tag.

Keď spustíte liquibase update poskytli by ste tento argument

--context=TST alebo --context=Prod

a nahradí sa príslušná hodnota.