2017-02-28 3 views
1

Liquibase ist ein großartiges Tool zum Organisieren von Datenbankänderungen. Ich führe Liquibase Changesets beim Start in einer Cluster-Umgebung. Die erste Anwendungsinstanz legt eine Sperre (in der Datenbank changeloglock) ab und führt die Changesets aus. Andere Instanzen, wenn sie die Sperre ergreifen, markieren nur die ausgeführten Änderungsmengen als MARK_RAN. So weit, ist es gut.liquibase databasechangelog zeigt den Computernamen nicht an

Kürzlich gab es ein Problem, und ich musste in die Details der Tabelle Datenbankchangelog tauchen. Ich hatte erwartet, den Instanznamen (Computername) in den Meta-Informationen zu sehen. Aber ich konnte es dort nicht finden. Gibt es eine Möglichkeit, das Liquibase-Verhalten so anzupassen, dass es den Instanznamen als Metainformation in die Tabelle "Datenbankchangelog" schreibt?

Vielen Dank!

Antwort

1

Dies müsste wahrscheinlich eine Änderung an Liquibase selbst sein - mit der Konfiguration gibt es nichts zu tun. Die DATABASECHANGELOGLOCK Tabelle hat eine Spalte LOCKEDBY für diesen Zweck, aber die DATABASECHANGELOG Tabelle ist entworfen, um nicht zu kümmern. Wenn Sie nachverfolgen möchten, wer Liquibase bei der Bereitstellung einer Änderung ausgeführt hat, müssen Sie unter Datical etwas wie das tun, was wir tun - wir haben einen benutzerdefinierten Code, der Liquibase umschließt. Wir haben eine Klasse, die auf Ereignisse von Liquibase hört, während eine Implementierung stattfindet, und wir schreiben diese Informationen dann in eine "Audit" -Datenbank, die all das verfolgt.

+0

Ich schätze Ihre Antwort. Vielen Dank! – aug70co

Verwandte Themen