在新环境中首次运行spring boot应用程序时如何运行data.sql脚本?

时间:2019-04-29 12:47:55

标签: java hibernate spring-boot spring-mvc

我们知道hibernate.hbm2ddl.auto=update的配置可以在新环境中运行应用程序时自动生成数据库表,而hibernate.hbm2ddl.auto=create可以在数据库中生成表后在classpath中运行某些脚本,例如data.sql文件

问题来了,我们如何才能在配置hibernate.hbm2ddl.auto=update下运行data.sql脚本?

或者在新环境中部署应用程序后想要在数据库中初始化一些数据时还有其他解决方案吗?

1 个答案:

答案 0 :(得分:0)

data.sql是一种Spring Boot机制,与Hibernate无关。

如果您设置spring.datasource.initialization-mode=always,则脚本将被执行:

https://docs.spring.io/spring-boot/docs/current/reference/html/howto-database-initialization.html

您可以使用一些存储过程代码在data.sql中初始化数据库。

另一种方法可能是侦听ApplicationReadyEvent,然后初始化数据库。

@EventListener(ApplicationReadyEvent.class)
public void doSomethingAfterStartup() {
    // Initalize the database
}