我如何使用休眠生成迁移?

Posted

技术标签:

【中文标题】我如何使用休眠生成迁移?【英文标题】:How i can generate migrations with hibernate? 【发布时间】:2019-05-18 01:06:26 【问题描述】:

我想通过代码优先方法使用 hibernate 和 java 生成我的数据库。我已成功生成数据库,但我错过了我的迁移文件。对 .NET 中的 EntityFrameworkCore、php 中的 Eloquent 或节点中的 Sequelize 等迁移有休眠支持吗?

这是我生成数据库的类:

public class CreateDataBase 
    public static void main(String[] args) 
      Configuration conf = new Configuration();
      conf.configure();

      SchemaExport se = new SchemaExport(conf);
      se.create(true,  true);  
    

这是我的架构:

package Infra.HibernateConfiguration;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity 
public class Bank 
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id; 

    @Column()
    private String code;

    @Column()
    private String name;

    public int getId() 
        return id;
    

    public String getCode() 
        return code;
    

    public void setCode(String code) 
        this.code = code;
    

    public String getName() 
        return name;
    

    public void setName(String name) 
        this.name = name;
    




【问题讨论】:

【参考方案1】:

您可以使用Liquibase 或Flyway。

Flyway 和 Liquibase 都支持您需要的所有功能 专业的数据库重构和版本控制,让您永远 知道您正在处理的数据库模式的版本以及是否 它与您的软件版本相匹配。两种工具都集成在一起 使用 Maven 或 Gradle 构建脚本,以便您可以完全自动化数据库重构。

【讨论】:

以上是关于我如何使用休眠生成迁移?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 RedGate docker 生成迁移脚本?

从 java pojo 类生成休眠查询

JBoss 5.1:使用 JPA 休眠

如何在 EF Core Code First 中自定义迁移生成?

如何从 IntelliJ IDEA 中的模型类生成 Flyway 迁移脚本?

如何从 Laravel 中的迁移中生成视图?