From c0efd3a22edd2d3e0459b310aac835e3ded75ff3 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Thu, 12 Jun 2014 06:48:38 +0100 Subject: [PATCH] Add clarification of ddl-auto and schema.sql --- spring-boot-docs/src/main/asciidoc/howto.adoc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/spring-boot-docs/src/main/asciidoc/howto.adoc b/spring-boot-docs/src/main/asciidoc/howto.adoc index 43abbe3ba4..f75bcaf8fb 100644 --- a/spring-boot-docs/src/main/asciidoc/howto.adoc +++ b/spring-boot-docs/src/main/asciidoc/howto.adoc @@ -1174,7 +1174,6 @@ not something you want to be on the classpath in production. It is a Hibernate f (nothing to do with Spring). - [[howto-intialize-a-database-using-spring-jdbc]] === Initialize a database using Spring JDBC Spring JDBC has a `DataSource` initializer feature. Spring Boot enables it by default and @@ -1194,6 +1193,13 @@ useful once an application has matured and been deployed a few times, since the can act as ``poor man's migrations'' -- inserts that fail mean that the data is already there, so there would be no need to prevent the application from running, for instance. +If you want to use the `schema.sql` initialization in a JPA app (with +Hibernate) then `ddl-auto=create-drop` will lead to errors if +Hibernate tries to create the same tables. To avoid those errors set +`ddl-auto` explicitly to "" (preferable) or "none". Whether or not you use +`ddl-auto=create-drop` you can always use `data.sql` to initialize new +data. + [[howto-initialize-a-spring-batch-database]]