我正在使用 Spring 4.1.6,并且我的服务可以与 Hibernate 一起正常工作。在项目的根目录中,我有 schema.sql,每次运行服务器时都会运行它。问题是,我第一次运行服务器时,我将一些数据放入数据库中,当我重新启动它时,脚本再次执行,我丢失了重新启动之前加载的所有数据。
所以,我认为我有两个选择来解决这个问题:
- 编辑sql脚本来执行所有查询,以防万一它们不存在(这会更费力,因为每次导出数据库时我都必须编辑脚本)
- 通过某种方式告诉 hibernate 在某些情况下执行 sql 脚本。如果存在一些执行脚本的配置,以防数据库不存在,那就太好了。
你知道这是否可能吗?提前致谢。
最佳答案
听起来这是一个名为 Liquibase 的工具的完美用例。 。这基本上是数据库的版本控制工具,它允许您定义对架构和/或数据的更改,并确保这些更改仅应用一次。
如果多人更改相同的数据库架构并确保您的数据库对于您已 checkout /发布的代码版本等始终有效,这将非常有用。
关于java - 控制hibernate sql脚本运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31011993/