Liquibase-Datentyp-Mapping-Dokumentation
Sorry, diese Frage scheint dumm, aber ich habe versucht 1 Stunde auf der Suche und habe nichts gefunden.
Also ich bin mit liquibase für mehrere Datenbanken(z.B. MSSQL, Oracle und MySQL), wenn ich sage:
addColumn(tableName: "ABC_TEST") {
column(name: "IS_ACTIVE", type: "boolean")
}
Woher weiß ich, ob der Typ "boolean" konvertiert werden zu richtigen Typen für jede Datenbank?
Und gibt es irgendwelche Anleitungen, die ich finden kann für das Datentyp-mapping? Wenn ich wollen, fügen Sie eine weitere Spalte, die Fremdschlüssel, welche Art sollte ich verwenden?
- Wenn Sie sagen, mehrere Datenbank-Grails (2.0 und höher) verfügt über integrierte Funktionen zum mehrere datasources, hast du das ausprobiert?
- Was Sie angesprochen haben, ist-Daten-source-config, das ist kein problem. Mein problem ist vor allem über die migration-Skripte. Und ich will ein migration-Skript für mehrere Datenbanken.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kasse diese Frage (und Antworten) finden Sie unter verfügbare Arten, die liquibase anbietet.
In meinem Antwort auf diese Frage gibt es einen link zu der einschlägigen liquibase Klassen, die die übersetzung an die db-spezifischen Typen.
Wenn Sie beim erstellen der Tabelle, die die Primärschlüssel mit "liquibase Typ" dann liquibase wird übersetzt, um die db-spezifischen Typ.
Dann ist dein foreign-key sollte nur den gleichen Typ verwenden und liquibase übersetzen dieses ebenfalls.
E. g. check-out die Klasse
BigIntType
.Mit liquibase Sie würde einfach nur die "liquibase type":
BIGINT
.Auf Oracle-DBs wird es übersetzen zu
("NUMBER", 38,0)
.Auf MSSQL wird es übersetzen zu
("BIGINT")
.Liquibase hat ein Konzept der Datenbank-Dialekte, ähnlich wie Hibernate ist. Es verwendet diese, um zu wissen, wie zu generieren der richtigen DDL-Anweisungen zum hinzufügen/ändern/löschen, Spalten, Fremdschlüssel, etc. Wenn es eine Verbindung zu der Datenbank, die Sie verwendet die JDBC-Metadaten, um zu bestimmen, welche Datenbank-Typ, den Sie verwenden, und verwendet, um zu bestimmen, den richtigen Dialekt.
Hier ist eine Tabelle mit Liquibase Datentypen-mapping auf SQL-Server und Oracle.