java(spring)自动创建数据库差异

时间:2015-04-15 20:40:27

标签: java sql hibernate migration liquibase

我正在寻求PHP中与PHP的Doctrine ORM相同的功能。

我可以描述一个实体,doctrine:migrations:diff控制台命令将使我成为一个很好的迁移,它将生成用于更新数据库模式的SQL。然后我可以使用运行doctrine:migrations:migrate

的新字段/表格等更新当前数据库架构

但是用Java做同样的事情是什么?我曾试图用Flyway做到这一点,但没有运气,因为它无法获得实体并产生差异:https://github.com/flyway/flyway/issues/648#issuecomment-64208848

所以,我只是尝试用liquibase来做,但不知道该怎么做。

我试图在irc.freenode.net上的#java房间里提出这个问题,但最接近的答案是"让hibernate创建架构并让liquibase提取它" (谢谢,k5 _)

但......怎么样?

许多消息来源说我必须稍微使用" hibernate.hbm2ddl.auto" ...但是如何?它是什么?

我很惊讶没有例子"对于傻瓜"通过互联网获取这项重要功能

我认为用手书写所有迁移是一种可怕的方式,我只是不相信没有解决方案

拜托,帮帮我

提前谢谢你!

UPD

在我的特殊情况下,我使用Hibernate,我定义了基本实体(使用OneToMany,ManyToOne映射) 我想从干净的数据库开始,并通过迁移更新其架构。

因此,与当前数据库架构状态相比,我的目标是从实体描述自动生成此迁移。

UPD 2

第二个最接近的答案是(再次感谢k5_):"配置hibernate以在不存在时创建模式(只需添加您发布到persistence.xml的配置选项)。启动服务器,它将在数据库中创建一个模式。使用liquibase提取架构。或者使用它在两个数据库上创建差异。"

0 个答案:

没有答案