Liquibase + Hibernate 重命名列

Lam*_*mp3 7 java hibernate jpa liquibase liquibase-hibernate

我使用 H2 数据库来存储我的数据,并使用 liquibase (带有 hibernate 插件)来检查数据库和 projet 之间的差异。

假设我有以下代码:

@Entity
public class myEntity{

    @Column(name="val")
    private int value;

}
Run Code Online (Sandbox Code Playgroud)

数据库已就位并已存储一些数据。

现在,当我将上面的列 ie 从 val 重命名为 value 并运行 liquibase:diff 时,difflog 会显示删除列“val”并添加列“value”。

显然这不是我想要的,因为原来存储在“val”列中的所有数据都会消失。

有没有办法告诉 liquibase 它不是一个新列,而是一个旧的重命名列?

我想运行 liquibase:diff 并且生成的 diffLog 应自动包含我的列的重命名...标记,而不是添加.. 和删除.. 一个..

Ram*_*A.G 7

您是否尝试使用如下变更集(或者我的问题是否错误)

   <changeSet author="liquibase-docs" id="renameColumn-example">
        <renameColumn columnDataType="int"
                newColumnName="value"
                oldColumnName="val"
                remarks="A change in names"
                schemaName="public"
                tableName="myEntity"/>
    </changeSet>
Run Code Online (Sandbox Code Playgroud)