Nehmen wir an, dass es notwendig ist, 2 Spalten zu einer Tabelle hinzuzufügen und 1 zu ändern. Aus reiner Entwurfsansicht muss ich 3 Änderungssets mit 3 verschiedenen Vorbedingungen erstellen: 2 Spalten existieren, 1 Spalte hat den falschen Typ.Gibt es eine Möglichkeit, Changeset in Liquibase zu kombinieren?
Dies ist klare Design-Ansatz, aber es führt zu 3 separaten alter Tabelle, die sehr teuer sein kann. Zum Beispiel MySql kopieren oder erstellen ganze Tabelle neu, wenn Spalte hinzugefügt oder geändert wird. Aber es erlaubt, mehrere modifizierte Aussagen zu einer zu kombinieren. Aber ein Änderungssatz muss Vorbedingungen kombinieren, was unmöglich ist - sollte ich große Änderungen vornehmen, wenn einer von ihnen wahr oder alles ist?
Gibt es also eine Möglichkeit, verschiedene Vorbedingungen zu betrachten und die alter table nur aus erfolgreichen Vorbedingungen aufzubauen?
Hinweis zu den Vorbedingungen: Sie sollten sich im Allgemeinen nur auf die Changelog-Verfolgung von Liquibase verlassen, um zu wissen, ob ein ChangeSet angewendet wurde oder nicht. Vorbedingungen sind manchmal hilfreich, aber wenn Sie sich ausschließlich auf sie verlassen, um zu bestimmen, was ausgeführt werden sollte, ist es normalerweise ein "schlechter Code-Geruch", dass Datenbankänderungen nicht gut genug kontrolliert werden. Stellen Sie nur sicher, dass Sie die Vorbedingungen nur für isolierte Prüfungen verwenden, um Datenbanken wieder in Einklang zu bringen. –