Wir versuchen, Liquibase für SQL Server zu verwenden und haben eine Frage zu Kontexten und Labels. Bei der Bereitstellung in unseren Dev-, TST- und Prod-Umgebungen verwenden wir SQL Server-Synonyme und verbundene Server, die env-spezifisch sind. Bei der Bereitstellung in TST zeigen der Linked Server und das Synonym beispielsweise auf SERVER_A, aber Prod sollte auf SERVER_B verweisen. Gibt es eine Möglichkeit, dass Liquibase automatisch den richtigen SERVER-Wert einstellt, abhängig davon, in welcher Umgebung wir uns zur Release-Zeit befinden?Umgebungsspezifische SQL-Server- und Synonymdefinitionen
Antwort
Die Liquibase-Funktionen, die dazu verwendet werden, sind labels, contexts und changelog parameters. Man könnte so etwas in Ihrem Changelog hat:
<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>
Ich weiß nicht, die SQL Server-Syntax für das Erstellen, was Sie wollen, so dass beispielsweise nicht ganz korrekt ist, aber die Hauptsache ist, dass Sie verwenden können, die Variable Referenz ${linked.server}
drin. Es gibt kein integriertes Liquibase-Refactoring für SQL Server-Synonyme oder Verbindungsserver. Sie können also entweder das <sql>
-Tag verwenden oder Ihre eigene Liquibase-Erweiterung schreiben, die ein neues <synonym>
- und/oder <linkedServer>
-Tag implementiert.
Beim Ausführen liquibase update
Sie das Argument
--context=TST
oder --context=Prod
und der entsprechende Wert würde ersetzt werden.
liefern würde- 1. Wie Log4j umgebungsspezifische
- 2. Umgebungsspezifische Initialisierer für Schienen?
- 3. Wie spezifizieren Sie umgebungsspezifische Inventardateien?
- 4. enthalten umgebungsspezifische Datei in playframework
- 5. Fang und weiter in SQLServer
- 6. Datenüberwachung in NHibernate und SqlServer
- 7. Datenbankreplikation von SQLServer 2000 zu SQLServer 2008
- 8. SQlSERVER 2000
- 9. umgebungsspezifische Konfiguration in einer Javascript-App Handhabung
- 10. Umgebungsspezifische Änderungen aus dem liquibase-Skript ausführen
- 11. Umgebungsspezifische Datei application.properties in Spring Boot-Anwendung
- 12. SqlServer Set SERIAL_NO Auto Inkrementieren und Dekrementieren
- 13. Datum in SQLServer konvertieren und Zugriff
- 14. ASP.NET SqlServer-Sitzungsreplikation
- 15. Sqlserver PDO Abfrage Fehler
- 16. asp.net Sitzungsstatusmodus "SQLServer"
- 17. Schaffung Blick in Sqlserver
- 18. Korrekte SQLServer-Anweisung
- 19. Reporting Services in SqlServer
- 20. Max Datensätze von sqlserver
- 21. Wie ROUNDDOWN in sqlserver
- 22. Benachrichtigungs-App von SqlServer
- 23. SQLServer CASE-Ausdrücke - Kurzschlussauswertung?
- 24. Row_Number() in SQLServer
- 25. sqlserver express Datenbankkopieroptionen
- 26. SQLServer Stored Procedure
- 27. Über Monitor in sqlserver
- 28. Powershell SQLServer-Module
- 29. SQLServer Distinct Zeilen
- 30. SQLServer versuchen fangen Leistung