我们将使用liquibase参数值来控制多个受支持的数据库引擎上的列类型 . 我希望能够在changelog文件中指定列类型 . 首先是所有的dbms和(即来自java.sql.Types . *的东西),然后覆盖一些特定的 .
它可能看起来像这样:
<property name="DATETIME.type" value="TIMESTAMP"/>
<property name="DATETIME.type" value="DATE" dbms="oracle" />
但Liquibase似乎采取了第一个找到的参数值(所以在oracle上,TIMESTAMP类型在上面的例子中被采用) . 我可以通过简单地更改这样的行的顺序来可靠地达到预期的结果吗?:
<property name="DATETIME.type" value="DATE" dbms="oracle" />
<property name="DATETIME.type" value="TIMESTAMP"/>
编辑:我想归档的是支持新数据库,而不需要更改类型映射 - 所以要对数据库使用liquibase默认值(java.sql.Types . * types),这与我们的遗产不兼容db-versioning工具是必需的 .
1 回答
我在liquibase here中提出了一个关于如何区分数据库的类似问题 .
虽然它是关于序列的,但我认为可以使用相同的方法来处理不同的列类型: