如何使用Liquibase强制执行列顺序?

时间:2015-06-03 17:15:43

标签: postgresql liquibase

设定:

  1. liquibase 3.3.5
  2. PostgreSQL 9.3
  3. Windows 7旗舰版
  4. 使用

    设置Liquibase.properties文件
    changeLogFile = C://temp/changeset.xml, 
    

    我使用Liquibase(3.3.5)创建了一个diff文件。

    liquibase.bat diffChangeLog
    

    检查changeset.xml文件显示

    -<addColumn tableName="view_dx">
             <column type="int8" name="counter" defaultValueNumeric="0" defaultValue="0"/>
    </addColumn
    

    问题是什么时候

     liquibase.bat update
    
    运行

    ,更改的表与引用表的列顺序不同。这会导致使用SETOF返回表行的存储过程出现问题。

    如果不破坏目标数据库上的现有表,如何使用Liquibase强制执行列顺序?

    TIA

2 个答案:

答案 0 :(得分:1)

我认为您通常不会让Liquibase强制执行列排序。您可能需要更改存储过程以使用列名而不是依赖于位置,这是一个很好的习惯。

答案 1 :(得分:0)

您是否尝试过使用afterColumn标签的addColumn属性?