用liquibase改变柱长

时间:2016-05-19 09:31:08

标签: liquibase

我在使用liquibase更改postgres db中的列长时遇到问题。

我有一个带有字段描述varchar(300)的表帐户。我想把它改成varchar(2000)。

我已经删除并重新创建了同一文件中的主键,因此我没有权限问题或架构/数据库名称或类似的东西。为了测试,我已经清除了数据表。

我正在运行

<changeSet author="liquibase" id="sample">
    <modifyDataType
        columnName="description"
        newDataType="varchar(2000)"
        schemaName="accountschema"
        tableName="account"/>
</changeSet>

我收到此错误信息,但我无法理解这个问题。列唯一的约束是一个非空约束,我成功添加了一个单独的更改日志来删除这个约束(忽略了我不明白为什么这会影响扩展字段长度的事实)。

有人能指出我做错了吗?

3 个答案:

答案 0 :(得分:3)

xml文件中的架构定义不允许<modifyDataType ... />

xsd文件的版本应与您使用的Liquibase版本相匹配。例外情况看起来就像是使用版本1.9的xsd,请参阅http://www.liquibase.org/documentation/xml_format.html

答案 1 :(得分:2)

您可以像这样增加列的大小:

<changeSet author="liquibase" id="sample">
    <modifyDataType
        columnName="description"
        newDataType="varchar(2000)"
        tableName="account"/>
</changeSet>

答案 2 :(得分:0)

在Oracle中,必须使用TEMP列。下面是一个示例;

setCurrentUser