Skip to content

Spring Boot running data.sql before creating entities in presence of schema.sql #9048

@ConsciousObserver

Description

@ConsciousObserver

I'm trying to insert some rows in my entities for testing on developer machine using H2 Database. I'm using data.sql for this.

It works fine, entities are created and then data.sql is run to insert data in the tables produced by the entities.

However I need to create some other tables for which there are no entity classes, so I'm using schema.sql for those. Here's the issue, as soon as I add schema.sql to the project, Spring Boot runs data.sql before creating entities, which ends in Table not found exception.

It works fine if I replace data.sql with import.sql, it's run after the entities are created.

However h2 configuration is supposed to run only when testing, for that I have a maven profile which activates a spring.datasource.platform = h2, to load schema-h2.sql and data-h2.sql. import.sql doesn't work with the platform.

So the issue is that data.sql is being run before entities are created only when schema.sql is present.

Here's the Github repository for reproducing the issue

Without any platform

https://github.com/ConsciousObserver/SpringBootSchemaSqlIssue.git

With h2 platform (It's another branch platform-h2 in the above repository)

https://github.com/ConsciousObserver/SpringBootSchemaSqlIssue/tree/platform-h2

Stackoverflow

http://stackoverflow.com/questions/43692115/spring-boot-running-data-sql-before-creating-entities-in-presence-of-schema-sql

Thanks

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions