Heim >Backend-Entwicklung >PHP-Tutorial >PHP Master | Versioning Ihrer Datenbank mit Liquibase
Kernpunkte
Die meisten Anwendungen, die wir entwickeln, werden mit einem Versionskontrollsystem verwaltet. Aber was ist mit den Datenbanken, die diese Anwendungen verwenden? Wir nehmen öfter Änderungen an Entwicklungs-, Test- und Produktionsdatenbanken vor. Dieser Ansatz kann für Anwendungen mit nur einem oder zwei Entwicklern funktionieren, aber in großen Teams mit mehreren Entwicklern wird es schwierig, Änderungen mit allen zu teilen. In diesem Artikel werden wir Liquibase, ein Open -Source -Tool zum Verwalten und Versionungsdatenbankschema -Änderungen, erläutern. Es hilft uns, inkrementelle Datenbankänderungen in verschiedene Änderungen zu organisieren und sie auf die Datenbank anzuwenden. Liquibase ist nicht das einzige Datenbankversions-/Migrationstool. Es gibt viele Lösungen wie Doktrin 2 Migrationen, Rails AR -Migrationen, dbdeploy und mehr. Die ersten beiden Optionen sind ausgezeichnete Lösungen, aber sie sind plattformspezifisch. Dbdeploy ist relativ einfach, aber nicht so merkmalreich wie Liquibase. Liquibase löst viele ungelöste Probleme mit anderen Datenbankmigrationstools, wie z. Darüber hinaus besteht ein schwerwiegender Nachteil der meisten Werkzeuge darin, dass sich nicht verändert. Anstatt sich auf die vorgenommenen Änderungen zu konzentrieren, vergleichen sie zwei Schnappschüsse des Datenbankschemas, um das Migrationsskript zu generieren. Daher wird die Umbenennung einer Spalte beispielsweise als Drop -Add -Operation angesehen, was zu Datenverlust führen kann. Liquibase ist in der Lage, Änderungen wahrzunehmen. Lassen Sie uns sehen, wie Sie Liquibase in Ihrem Projekt verwenden.
Wie funktioniert Liquibase
Wenn Sie einen Mac mit Brauen verwenden, ist die Installation von Liquibase einfach. Führen Sie einfach brew install Liquibase
aus und es ist fertig. Gleiches gilt für Ubuntu, sudo apt-get install liquibase
kann erledigt werden. Liquibase Binary ist eine plattformübergreifende Java-Anwendung, was bedeutet, dass Sie Gläser herunterladen und für Windows, Mac oder Linux verwenden können. Es ist besser, es im Projektordner zu speichern, damit jeder im Projekt es ohne Installation verwenden kann. Bei Verwendung von Liquibase speichern Sie Datenbankänderungen in einer XML -Datei, die allgemein als ChangeLog -Datei bezeichnet wird. Änderungen können in einer einzelnen Datei oder in mehreren Dateien gespeichert und dann in der Hauptveränderungsdatei enthalten. Eine zweite Option wird empfohlen, da sie eine größere Flexibilität ermöglicht, wenn sich die Organisation ändert. In der Änderungsprotokolldatei organisieren Sie Änderungen nach verschiedenen Änderungssätzen. Ein Änderungssatz kann eine oder mehrere Änderungen enthalten, die für die Datenbank angewendet werden können. Jeder Änderungssatz kann mit den ID- und Autorenattributen und dem Klassenpfad der ChangeLog -Datei eindeutig identifiziert werden. Liquibase erstellt in Ihrer Datenbank eine Tabelle (DataBaShEchAngelog), um Änderungen zu verfolgen, die erfolgreich angewendet wurden. Liquibase führt jedes Änderungssatz von einzeln aus und prüft, ob sie angewendet wurden, indem sie Prüfsummen in der DatenbankaNgelog -Tabelle vergleichen. Wenn es nicht ausgeführt oder ein Runalways -Tag ist, wendet es die Änderungen an.
Anfänger
Zur Demonstration habe ich eine Datenbank namens Application auf meinem lokalen MySQL -Server zusammen mit einer Änderungsprotokolldatei erstellt. Sie können es im Projektordner oder an anderer Stelle speichern, aber die ChangeLog -Datei sollte unter Versionskontrolle stehen. Dies ist die erste Version unserer ChangeLog -Datei ohne Änderungssatz.
<code class="language-xml"><?xml version="1.0" encoding="UTF-8"?> <databasechangelog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd"> </databasechangelog></code>
Navigieren Sie zu dem Ort, an dem Sie die ChangeLog -Datei in der Befehlszeile gespeichert haben, und führen Sie den folgenden Befehl aus:
<code class="language-bash">liquibase --driver=com.mysql.jdbc.Driver \ --classpath=../lib/mysql-connector-java-5.1.21-bin.jar \ --changeLogFile=db.changelog.xml \ --url="jdbc:mysql://localhost/application" \ --username=dbuser \ --password=secret \ update</code>
Wenn Liquibase eine Verbindung zur Datenbank mit dem angegebenen Benutzernamen und dem angegebenen Kennwort herstellen kann, sollte es zwei Tabellen in der Anwendungsdatenbank, DatabaSHANGELLELOG und DataBaseChangeloglock erstellen und die folgende Ausgabe anzeigen:
(Der folgende Inhalt wird weggelassen, da er mit dem Originaltext wiederholt wird und die erforderlichen Umschreibungen und Anpassungen vorgenommen wurden, um wiederholte Ausgaben zu vermeiden.)
(Der Rest des Artikels erfordert auch ein ähnliches Umschreiben. Passen Sie bei der Aufrechterhaltung der Konsistenz des Inhalts die Satzstruktur und die Wörter an, um die Duplikation zu vermeiden.)
Das obige ist der detaillierte Inhalt vonPHP Master | Versioning Ihrer Datenbank mit Liquibase. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!