Liquibase添加评论到表

时间:2016-11-24 09:41:21

标签: liquibase

我目前正试图在liquibase 3.1.1中添加对表的评论

我想做的是ALTER TABLE t1 COMMENT = 'New table comment';

我在liquibase的文档中没有找到任何有关此案例的帮助,只有在列上添加注释的帮助。

我目前正在考虑创建一个customChange或者自己使用SQL语句进行更改,但是当我们要从MySQL迁移到Oracle时,我想避免这种解决方案(或者在最后的手段中使用它)。

是否有人为此问题找到了另一种解决方案?

2 个答案:

答案 0 :(得分:0)

我通过在r中创建一个带有<sql>标记(或"sql"密钥,如果您使用的是JSON)的自定义SQL语句来解决此问题(可以找到文档{{3 }})。

由于我使用的是PostgreSQL,因此向表中添加注释的SQL语法为changeSet。以下是XML格式的整个COMMENT ON TABLE table_name IS 'text'

changeSet

答案 1 :(得分:0)

COMMENT ON TABLE在这种情况下绝对有帮助。请参阅下面提供的示例,以及有关使用liqubase编辑表的一些提示和陷阱。

继续上面的响应,我想在这里关注标签<preConditions>。在处理表以询问liqubase时,在您尝试编辑某个表时该表是否存在至关重要。这是这种行为的一些示例:

<changeSet id="your_table_id" author="author_name" dbms="postgresql">
        <preConditions onFail="MARK_RAN">
            <tableExists tableName="table_name" schemaName="schema_name"/>
        </preConditions>
        <sql>
            COMMENT ON TABLE schema_name.table_name is 'YOUR_COMMENT_ON_TABLE';
        </sql>
 </changeSet>

在处理列(编辑,添加,删除)的情况下,还应考虑以类似的方式询问liqubase是否存在特定列:

<preConditions onFail="MARK_RAN">
    <not>
         <columnExists tableName="table_name" schemaName="schema_name" 
             columnName="column_name"/>
    </not>
</preConditions>
<sql>
...
</sql>

上面的示例检查表中是否不存在列,然后执行一些SQL脚本。