正如我从Spring Reference
文档中了解到的,我们可以使用data.sql
和schema.sql
文件来初始化数据库。
当应用程序的多个实例针对单个数据库运行时,如何使data.sql
和schema.sql
文件只运行一次,而不是在所有容器中执行。
您需要禁用默认的弹簧数据初始化。你可以通过的属性文件来做到这一点
spring.datasource.initialization-mode=never
而春天在9。数据库初始化不建议使用多种数据源初始化技术,如果您希望基于脚本的DataSource
初始化能够建立在Hibernate
执行的架构创建之上,请设置
spring.jpa.defer-datasource-initialization
为true,这将推迟数据源初始化,直到创建并初始化任何EntityManagerFactory
bean之后。
对于跨多个应用程序实例管理数据库,您可以使用Flyway
和Liquibase
,建议使用基本的schema.sql
和data.sql
脚本以及Flyway
或Liquibase
,这是不推荐的,并且在将来的版本中将删除支持。