在添加一个或多个具有数据库映射(JPA/hibernate)的类之后,我希望 Hibernate 打印出必要的架构更新,以便我可以在数据库上执行它们(例如通过 FlyWay)。我不希望自动执行更新。
似乎可以对此进行一些控制的唯一属性如下
org.hibernate.tool.hbm2ddl=validate|update|create|create-drop|none
我不想自动更新/更改任何内容。我想将其设置为验证或无。当我这样做时,我看不到生成的架构。
我是经典的spring应用,以前使用hibernate的SchemaExport
类来打印DDL。
SchemaExport schemaExport = new SchemaExport(cfg);
schemaExport.execute(true, false, false, false);
我可以在 Spring Boot 中使用类似的东西吗?
最佳答案
这就是我的工作......
首先我进行实体更改,然后将它们设置为:
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
然后
- 重新运行我的应用程序并让 hibernate 对数据库进行更改。
- 进入日志,复制hibernate用来更新数据库的sql
- 将该 sql 粘贴到新的 Flyway 脚本中
- 关机启动应用
- 删除本地数据库
- 将 ddl-auto 改回 validate
- 重启启动应用
- 进行测试以确保 Flyway 进行了正确的更新。 Hibernate 和 Flyway 现在将同步。
关于java - Spring 启动和 hibernate : print/log DDL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25048199/