Spring 引导 h2 初始数据未首先创建 table

Spring Boot h2 initial data not creating table first

我正在尝试使用 h2 数据库创建一个小型 Spring 启动设置。

现在我有一个奇怪的问题,我无法解决。
如果我不为初始数据创建 data.sql,应用程序会正常启动并创建我的实体 tables.
如果我为初始数据创建一个 data.sql 并保留上一步中现有的 table,则一切正常。 如果我为初始数据创建 data.sql 并删除我现有的 h2 文件,我会收到无法导入数据的错误,因为缺少 table。

如何告诉 Spring 在导入初始数据之前创建我的 table?

这是 Spring Boot 2.5 发行说明中的​​ covered

By default, data.sql scripts are now run before Hibernate is initialized. This aligns the behavior of basic script-based initialization with that of Flyway and Liquibase. If you want to use data.sql to populate a schema created by Hibernate, set spring.jpa.defer-datasource-initialization to true. While mixing database initialization technologies is not recommended, this will also allow you to use a schema.sql script to build upon a Hibernate-created schema before it’s populated via data.sql.