Auf dieser Seite wird beschrieben, wie Sie mit der Open-Source-Liquibase-Erweiterung für Cloud Spanner Änderungen am Datenbankschema mit Liquibase verwalten.
Liquibase ist eine datenbankunabhängige Open-Source-Bibliothek zum Verfolgen, Verwalten und Anwenden von Änderungen des Datenbankschemas. Er unterstützt SQL sowie deklarative Formate wie XML, YAML und JSON. Mit der Cloud Spanner Liquibase-Erweiterung können Sie Liquibase für das Targeting auf Cloud Spanner aktivieren. Alle Cloud Spanner-Features werden mit Ausnahme einiger Einschränkungen unterstützt.
Liquibase installieren
Folgen Sie der Anleitung in der Liquibase-Dokumentation, um Liquibase zu installieren und zu konfigurieren.
Vorschauerweiterung installieren
Rufen Sie auf GitHub die Releaseseite für die Liquibase-Erweiterung für Cloud Spanner auf und wählen Sie neuesten Release aus.
Wählen Sie die JAR-Datei mit dem Namen
liquibase-spanner-x.y.z-all.jar
aus und laden Sie sie herunter, wobei xyz die Versionsnummer der Erweiterung darstellt. Beispiel: liquibase-spanner-1.0.2-all.jarLegen Sie die heruntergeladene JAR-Datei im Liquibase lib-Verzeichnis ab. Die JAR-Datei enthält die Erweiterung, das Cloud Spanner SDK und den Cloud Spanner JDBC-Treiber.
Konfigurieren Sie die URL für Liquibase im Format
jdbc:cloudspanner:/projects/<project>/instances/<instance>/databases/<database>
.
Erweiterung verwenden
Die Beispieldatei changelog.yaml, die in der Liquibase-Erweiterung für Cloud Spanner enthalten ist, zeigt viele Funktionen von Liquibase und deren Verwendung mit Cloud Spanner.
Hinweis
Prüfen Sie, ob Sie die vorherigen Schritte zur Installation der Erweiterung ausgeführt haben.
Vergewissern Sie sich, ob Sie eine Cloud Spanner-Instanz erstellt haben.
Prüfen Sie, ob Sie eine Cloud Spanner-Datenbank erstellt haben.
Weisen Sie der Erweiterung vorübergehend Ihre eigenen Cloud Spanner-Nutzeranmeldedaten für den API-Zugriff zu, indem Sie den folgenden
gcloud
-Befehl ausführen:gcloud auth application-default login
changelog.yaml erstellen
Geben Sie die folgende YAML-Datei in Ihren bevorzugten Editor ein.
databaseChangeLog: - preConditions: onFail: HALT onError: HALT - changeSet: id: create-singers-table author: spanner-examples changes: - createTable: tableName: Singers columns: - column: name: SingerId type: BIGINT constraints: primaryKey: true - column: name: Name type: STRING(255)
Diese YAML-Datei definiert eine Tabelle mit dem Namen
Singers
und dem PrimärschlüsselSingerId
sowie eine Spalte mit dem NamenName
, in der der Name des Sängers gespeichert wird.Speichern Sie die Änderungen als changelog.yaml.
Liquibase ausführen
Führen Sie diese Befehle für Liquibase mit dem folgenden Befehl aus. Ersetzen Sie dabei <URL>
durch den JDBC-Verbindungsstring im Format jdbc:cloudspanner:/projects/<project>/instances/<instance>/databases/<database>
.
liquibase --changeLogFile changelog.yaml --url <URL> update
Änderungen prüfen
Durch die Aktualisierungen im vorherigen Schritt wurden Ihrer Datenbank drei neue Tabellen hinzugefügt: Singer
, DATABASECHANGELOG
und DATABASECHANGELOGLOCK
.
Mit der Cloud Console oder dem gcloud
-Tool können Sie das Vorhandensein dieser Tabellen prüfen. Wenn Sie beispielsweise die SQL-Abfrage SELECT * FROM
INFORMATION_SCHEMA.TABLES
ausführen, wird eine Liste aller Tabellen in Ihrer Datenbank zurückgegeben.
gcloud spanner databases execute-sql <DB> --instance=<INSTANCE> \
--sql='SELECT * FROM INFORMATION_SCHEMA.TABLES'
Sie können einen Datensatz der Änderungen abrufen, die angewendet wurden, indem Sie den Inhalt von DATABASECHANGELOG
abfragen.
Nächste Schritte
Weitere Dokumentation finden Sie im GitHub-Repository zur Liquibase-Erweiterung für Cloud Spanner.
Weitere Informationen zu Liquibase finden Sie unter Erste Schritte mit Liquibase.