Unterstützte Datenbanken
Da es unterschiedliche Datentypen und syntaktische Unterschiede in SQL Dialekten gibt, werden folgende Datenbanken „out of the box“ unterstützt. Zusätzliche Datenbanktypen und Erweiterungen sind erhältlich über diese Webseite: Liquibase extensions
Weitere Informationen über die Anbindung einer spezifischen Datenbank (zu benutzende JDBC Treiber, URL, Klassen, usw) lassen sich durch Klicken auf den passenden Link finden.
| Datenbank | Typ Name | Anmerkungen |
|---|---|---|
| MySQL | mysql | Keine Probleme |
| PostgreSQL | postgresql | Die Version 8.2+ wird benötigt, um die Funktion „drop all database objects“ benutzen zu können. |
| Oracle | oracle | |
| MS-SQL | mssql | Keine Probleme |
| Sybase Enterprise | sybase | ASE 12.0+ wird benötigt. Die „select into“ Datenbankoption muss gesetzt werden. Der passende Treiber ist JTDS. Sybase unterstützt keine Transaktionen für DDL, deshalb wird ein Rollback im Fehlerfall nicht funktionieren. Fremdschlüssel können nicht gelöscht werden. |
| Sybase Anywhere | asany | Since 1.9 |
| DB2 | db2 | Keine Probleme. Ruft bei Bedarf automatisch „REORG“ auf. |
| Apache Derby | derby | Keine Probleme |
| HSQL | hsqldb | Keine Probleme |
| H2 | h2 | Keine Probleme |
| Informix | informix | Keine Probleme |
| InterSystems Caché | cache | Keine Probleme |
| Firebird | firebird | Keine Probleme |
| SAPDB | maxdb | Keine Probleme |
| SQLite | sqlite | Since 1.8 Keine Probleme |
Verwendung nicht unterstützter Datenbanken
Da Liquibase auf dem JDBC-Standard aufsetzt, ist die einzige Verbindung zur Datenbank an dem verwendeten SQL-Dialekt, die sich von DBMS zu DBMS unterscheiden kann. Wenn Sie Liquibase mit einer nicht unterstützten Datenbank verwenden, so wird Liquibase versuchen, die DB Änderungen durchzuführen, und in den meisten Fällen auch damit erfolg haben. Das einzige Problem, welches sicher auftreten wird, ist der Name der Funktion für das aktuelle Datum/Zeit. Wenn Liquibase es nicht schafft, die richtige Datums/Zeit Funktion zu ermitteln kann man den Namen mit Hilfe des Arguments „currentDateTimeFunction“ in der Kommandozeile angeben.(siehe command line und Ant).
You may also run into problem with the SQL generated by the change/refactoring tags on unsupported databases. The best way to deal with this problem is to first try the standard change/refactoring tags. If it generates an error, you can fall back to the <sql> tag to code whatever change you need to make in a way that your database understands.
If, for some reason, the DatabaseChangeLog table cannot be created on your database, the base creation SQL that you can modify to suite your needs is:
CREATE TABLE DATABASECHANGELOG (id varchar(150) NOT NULL, author varchar(150) NOT NULL, filename varchar(255) NOT NULL, dateExecuted datetime NOT NULL, md5sum varchar(32), description varchar(255), comments varchar(255), tag varchar(255), liquibase varchar(10), PRIMARY KEY(id, author, filename))
Reasons for creating the DatabaseChangeLog table yourself include database that require null fields to be specified as such and index limitations that don't allow primary keys on fields as long. You can change the data types and or data type lengths all you want,
