众所周知,当我们在新环境中运行应用程序时,hibernate.hbm2ddl.auto=update
配置可以自动生成数据库表,并且 hibernate.hbm2ddl.auto=create
在数据库中生成表后可以运行一些脚本,例如类路径中的data.sql文件。
问题来了,我们如何在配置hibernate.hbm2ddl.auto=update
下运行data.sql脚本?
或者当我们在新环境中部署应用程序后想要初始化数据库中的一些数据时,是否有其他解决方案?
最佳答案
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
}
关于java - 在新环境中首次运行 Spring Boot 应用程序时如何运行 data.sql 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55903744/