将Entity对象自动转换为changeSet



我在Java项目中创建了许多类似这样的实体:

@Data
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name="backup_item")
public class BackupItem {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long id;
public Path path;
}

现在我需要为它创建更改日志:

<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.0.xsd">
<changeSet id="1" author="rrrr">
<sql>
CREATE TABLE backup_item(
id SERIAL PRIMARY KEY NOT NULL,
);
</sql>
<rollback>
DROP TABLE backupset;
</rollback>
</changeSet>

有什么工具可以自动为我创建它吗?我至少有10张表,手动逐个创建它们需要花费大量时间。

您可以使用liquibase-maven插件,如第6章所示。(标题:用Maven插件生成changeLog(:

https://www.baeldung.com/liquibase-refactor-schema-of-java-app

尽管自动生成的变更日志并不那么可靠,我甚至看到liquibase开发人员不推荐的帖子。它们不支持很多东西,比如检测重命名的列等。

建议手动编写变更日志,因为您可以更好地控制脚本本身。。。

最新更新