控制休眠sql脚本运行

Posted

技术标签:

【中文标题】控制休眠sql脚本运行【英文标题】:controlling hibernate sql script run 【发布时间】:2015-06-23 19:39:42 【问题描述】:

我使用的是 Spring 4.1.6,并且我的服务在 Hibernate 中运行良好。在项目的根目录中,我有我的 schema.sql,每次运行服务器时都会运行它。问题是我第一次运行服务器时,我在 db 中放了一些数据,当我重新启动它时,脚本再次执行,我丢失了我在重新启动之前加载的所有数据。

所以,我认为我有两个选择两个来解决这个问题:

    编辑 sql 脚本以执行所有查询,以防万一它们不存在(这会更费力,因为我每次导出数据库时都必须编辑脚本) 通过某种方式告诉hibernate 只在某些情况下执行sql 脚本。如果存在一些执行脚本的配置以防万一数据库不存在,那就太好了。

你知道这是否可能吗?提前致谢。

【问题讨论】:

【参考方案1】:

听起来这是一个名为Liquibase 的工具的完美用例。这基本上是您的数据库的版本控制工具,它允许您定义对架构和/或数据的更改,并确保这些更改只应用一次。

如果多人更改同一个数据库架构并确保您的数据库对于您已签出/发布的代码版本等始终有效,这将非常有用。

【讨论】:

我一直在搜索有关 liquibase 的信息,我发现并找到了更好的飞行路线。通过 Spring Boot 非常简单明了。无论如何,我接受你的回答,因为这也是一种可能性。谢谢!

以上是关于控制休眠sql脚本运行的主要内容,如果未能解决你的问题,请参考以下文章

进入mysql控制台后执行sql脚本的方法

创建可重新运行的 Oracle DDL SQL 脚本

如何使用休眠执行 sql-script 文件?

sql 用于安全可重新运行脚本的SQL脚本模板

sql 用于安全可重新运行脚本的SQL脚本模板

Transact SQL运行另一个Transact SQL脚本