본문 바로가기

웹 개발/Spring Boot

Spring Boot) H2 데이터베이스 적재 문제 해결 / error creating bean with name 'datasourcescriptdatabaseinitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/datasourceinitializationconfiguration.class]

/src/main/resource 폴더 하위에 

schema.sql 파일 : 테이블 생성 sql 스크립트 작성

data.sql 파일 : 테이블에 데이터 insert 하는 스크립트 작성 

 

spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
spring.datasource.url=jdbc:h2:tp://localhost/(...)
spring.datasource.username=username
spring.datasource.password=
spring.h2.console.settings.trace=false
spring.h2.console.settings.web-allow-others=true
spring.datasource.initialization-mode=always
spring.sql.init.enabled=true

spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=none
spring.jpa.properties.hibernate.use_sql=true
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true


 

 

 

schema 에 있는 스크립트를 스프링부트 실행시마다 실행시키면 테이블이 중복돼서 에러가 발생한다.

그래서 디비 초기화는 처음 한번만 하고 그다음부터는 never로 바꿔야 한다. 

 

spring.datasource.initialization-mode=never

 

->

 

spring.datasource.initialization-mode=always