我正在使用存储在文件和schema.sql脚本中的H2数据库来初始化数据库(在Spring中使用DatabasePopulator类)。它工作正常,但每次应用程序启动时都会导入schema.sql(建立连接)。
我的目标是仅在创建数据库后加载它。如果已建立与现有数据库的连接,我想跳过它。
从我读过的内容:
- H2提供了一种在jdbc url中使用RUNSCRIPT初始化数据库的方法(每次都加载,而不是我想要的)。
- Spring Data JPA和Hibernate通过自动生成DDL(不是我想要的,我必须使用schema.sql)或加载schema.sql来允许数据库初始化,但是只有当spring.jpa.hibernate.ddl-auto属性才能生成设置为create或create-drop,这也不是我想要的,因为我在文件中有数据库,每次应用程序启动时都不能删除它。
所以我的问题是:如何仅在数据库创建时加载schema.sql,而无需手动检查数据库是否存在?它甚至可能吗?