我使用 H2 数据库来存储我的数据,并使用 liquibase(带有 hibernate 插件)来检查数据库和 projet 之间的差异。
假设我有以下代码:
@Entity
public class myEntity{
@Column(name="val")
private int value;
}
数据库已就位并已存储一些数据。
现在,当我将上述列重命名为“val”并运行 liquibase:diff 时,difflog 会显示删除“val”列并添加“value”列。
显然这不是我想要的,因为原来存储在“val”列中的所有数据都会消失。
有没有办法告诉 liquibase 它不是一个新列,而是一个旧的重命名列?
我想运行 liquibase:diff 并且生成的 diffLog 应自动包含我的列的重命名...标记,而不是添加...和删除..一个..
最佳答案
您是否尝试按如下方式使用变更集(或者我的问题是否错误)
<changeSet author="liquibase-docs" id="renameColumn-example">
<renameColumn columnDataType="int"
newColumnName="value"
oldColumnName="val"
remarks="A change in names"
schemaName="public"
tableName="myEntity"/>
</changeSet>
关于java - Liquibase + Hibernate 重命名列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39484137/