Kürzlich haben wir angefangen, Liquibase zu verwenden. Es ist noch nicht aufgetreten, aber wir haben uns vorgestellt, was passieren würde, wenn zwei Entwickler Änderungen in der Änderungsprotokolldatei im gemeinsam genutzten Git-Repository committen.
Wie kann man einen Merge-Konflikt lösen oder vermeiden? Um diese Frage etwas zu erweitern:
Was ist der empfohlene Arbeitsablauf bei der Verwendung von Liquibase in Kombination mit Git?
Beispiel-Szenario:
- Michael ändert eine Spalte in Tabelle 'customer'.
- Jacob ändert eine Spalte in Tabelle 'account'.
Beide Entwickler fügen also ein zur gleichen Änderungsprotokolldatei changelog.xml hinzu.
BEARBEITEN:
Wie in den Kommentaren erwähnt, ist das Szenario tatsächlich nicht so aufregend. Nehmen wir an, Jacob war der letzte, der seinen Code gepusht hat. Er muss also zuerst pullen. Es wird eine Warnung angezeigt, dass Merge-Konflikte gelöst werden müssen. Er löst den Konflikt, indem er beide Teile des Codes behält, sowohl von Michael als auch von ihm. Die Aktualisierung der Datenbank mit Liquibase bereitet keine Probleme.
Fortgeschrittenes Beispiel-Szenario:
-Michael ändert den Namen der Spalte 'name' in der Tabelle 'customer' in 'first_name', committet und pusht.
-Jacob ändert den Namen der Spalte 'name' in der Tabelle 'customer' in 'last_name' und committet.
-Jacob erhält einen Merge-Konflikt, als er Michaels Code pulled.
-Jacob und Michael besprechen den Konflikt und sind sich einig, dass es 'last_name' sein muss, den Jacob committet und pusht.
-Michael holt den gelösten Konflikt und führt ein Liquibase-Update durch. Dabei tritt ein Fehler auf: column "name" does not exist