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