将新数据类型添加到Liquibase

时间:2016-02-24 10:06:29

标签: liquibase

我正在尝试添加一个新的LiquibaseDatatype扩展,即使JAR在运行时位于'lib'目录并且位于类路径上,它也不被ServiceLocator选中。

我已经在加载类时添加了一个静态初始化程序(以及其他方法)但仍然没有快乐。

public class MyType extends LiquibaseDataType {

static {
    System.out.println("LOADED");
}

public MyType() {
    System.out.println("CONSTRUCTED");
}

@Override
public String getName() {
    String result = "mytype";
    System.out.println(result);
    return result;
}

@Override
public String[] getAliases() {
    return new String[] { "MYTYPE", };
}

@Override
public int getPriority() {
    return super.getPriority() + 10;
}

@Override
public boolean supports(Database database) {
    boolean result = (database instanceof MySQLDatabase) || (database instanceof OracleDatabase)
            || (database instanceof DB2Database);
    return result;
}

@Override
public int hashCode() {
    return super.hashCode() + 37;
}

}

我知道我可以将数据库类型属性元素添加到XML并使用$ notation来执行此操作..

<property name="MYTYPE" value="WHATEVER" dbms="db2"/>
<property name="MYTYPE" value="WHATEVER_ELSE" dbms="oracle"/>
...
<column name="COLX" type="${MYTYPE}"/>
...

但我想明确设置类型。

<column name="COLX" type="mytype"/>

非常感谢任何帮助。

0 个答案:

没有答案
相关问题