初めてデータベースで Liquibase を実行すると、変更セットを管理するために使用する 2 つのテーブルを作成しようとします。
Oracle9i データベースで Liquibase を実行すると、次のテーブルが作成されます。
CREATE TABLE myuser.DATABASECHANGELOG (
ID VARCHAR2(63) NOT NULL,
AUTHOR VARCHAR2(63) NOT NULL,
FILENAME VARCHAR2(200) NOT NULL,
DATEEXECUTED TIMESTAMP NOT NULL,
ORDEREXECUTED INTEGER NOT NULL,
EXECTYPE VARCHAR2(10) NOT NULL,
MD5SUM VARCHAR2(35),
DESCRIPTION VARCHAR2(255),
COMMENTS VARCHAR2(255),
TAG VARCHAR2(255),
LIQUIBASE VARCHAR2(20),
CONSTRAINT PK_DATABASECHANGELOG PRIMARY KEY (ID, AUTHOR, FILENAME)
);
次のエラー/例外が発生します。
java.sql.SQLSyntaxErrorException: ORA-00902: invalid datatype
Oracle9i には TIMESTAMP データ型がありません (後のバージョンの Oracle にはあります)。
Liquibase に別のデータ型を使用させるか、以前のバージョンの Oracle で動作していることを Liquibase に伝える方法はありますか?
それとも、Liquibase が Oracle9i をサポートしていないので、運が悪いのでしょうか?
編集: Oracle9iにはタイムスタンプ データ型がありますが、私のデータベースは 8i 互換モードで実行されており、残念ながら変更できません。問題はまだ残っています。