9

Ich habe eine Umgebung, in der ich mehrere Datenbanken (A und B) mit verschiedenen Entwicklungsreihen für jeden, also bis jetzt vollständig erfolgreich benutze. Ein Satz von Datenbankentwicklungen wird jedoch immer zuerst angewendet, alle Entwicklungen für die Datenbank B werden vor den Entwicklungen für eine Datenbank angewendet.Bestellen von Spielen für mehrere Datenbanken

Wir führen einige größere Umstrukturierungen durch und dies führt zu einigen datenbankübergreifenden Abfragen, um Datenbank B in die Zukunft zu verschieben. Da jedoch die Entwicklungen für Datenbank B zuerst ausgeführt werden, sind die Änderungen an Datenbank A noch nicht erfolgt Die Evolution schlägt fehl.

Gibt es eine Möglichkeit, die Reihenfolge zu ändern/zu priorisieren, in der Datenbankentwicklungen zwischen mehreren Datenbanken mit unterschiedlichen Entwicklungsreihenfolgen angewendet werden?

+0

ist es möglich, die Datenbank, die Sie zuerst Evolution anwenden möchten, einzuschalten und die andere auszuschalten? – runcode

Antwort

0

Leider glaube ich nicht, dass es einen Weg gibt, dies im Moment zu tun. Spielen Sie einfach iterates over the databases und führt die Entwicklungen für jeden von ihnen:

dbApi.databases().foreach(runEvolutions) 

Die Datenbanken Sequenz aus der Konfigurationskarte kommt, so gibt es keine Möglichkeit für Sie, die Bestellung zu gewährleisten, in dem sie gelesen wird.

Ich denke, Ihre beste Option wäre, die Entwicklungen in mehreren Schritten auszuführen, ohne zwischen den einzelnen Schritten zu brechen. Nach der Migration führen Sie eine weitere Evolution durch, um die verschobenen Spalten/Tabellen zu bereinigen.