0

我们已经有一个带有 liquibase 脚本(mysql、postgresql)的现有项目。现在我们要支持一个名为 Altibase 的新数据库。但是当我们运行时,liquibase:dropAll liquibase:update我们得到:

[ERROR] Failed to execute goal org.liquibase:liquibase-maven-plugin:3.5.3:dropAll 
(default-cli) on project project-model: Error setting up or running Liquibase: 
liquibase.exception.LockException: liquibase.exception.DatabaseException: 
Data type module (Name="DATETIME") not found. 
[Failed SQL: 
CREATE TABLE ALTIBASE.DATABASECHANGELOGLOCK (
  ID INT NOT NULL, LOCKED BOOLEAN NOT NULL, LOCKGRANTED datetime, 
  LOCKEDBY VARCHAR(255), 
  CONSTRAINT PK_DATABASECHANGELOGLOCK PRIMARY KEY (ID))] -> [Help 1]

这是 pom 的配置:

<profile>
    <id>altibase</id>
    <activation>
        <property>
            <name>env</name>
            <value>altibase</value>
        </property>
    </activation>
    <properties>
        <db.driver>Altibase.jdbc.driver.AltibaseDriver</db.driver>
        <db.url>jdbc:Altibase://ourdomain.cloud:20001/ourdb</db.url>
        <db.schema>ALTIBASE</db.schema>
        <db.username>admin</db.username>
        <db.password>admin</db.password>
    </properties>
    <dependencies>
        <dependency>
            <groupId>com.altibase</groupId>
            <artifactId>Altibase</artifactId>
            <version>1.0.1.2</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
</profile>

请注意,我们通过 maven 在本地安装了 Altibase jar。

4

2 回答 2

0

我猜 liquibase 不直接支持数据库。而且它似乎没有数据类型DATETIME

查看此站点上的“使用不支持的数据库”部分:https ://www.liquibase.org/databases.html 。

也许使用可选参数--currentDateTimeFunction=<value>。另请参阅此站点:https ://www.liquibase.org/documentation/command_line.html

于 2018-03-08T17:52:54.403 回答
0

Altibase 有DATE数据类型。而且,它的DATE数据类型与其他 DBMS 的DATETIME数据类型相同。Altibase 的DATE数据类型可以处理以微秒为单位的日期数据。

于 2018-07-03T06:50:33.083 回答