spring jdbc를 이용해서 database를 초기화 하는 간단한 방법을 정리 했습니다.
spring boot 버전에 따라 다르기 때문에 버전에 맞춰서 작업 해주면 됩니다.
2.4 이하 버전의 경우 src/resource/ 하위에 schema.sql, data.sql 파일이 있는경우 해당 파일이 start시 자동으로
동작 하게 되어 있습니다.
해당 설정이 정상 동작 하지 않는 경우 application.properties 에 spring.datasource.initialization-mode=always
설정을 추가 해주시면 됩니다.(저 설정 기본이 always입니다.)
2.5 이상의 경우 .sql파일이 자동으로 실행 되지 않습니다. application.properties 파일에
spring.sql.init.mode=always 설정을 추가 해줘야 정상 동작 하게 됩니다.
추가로 2.4 이하버전에 schema.sql파일 없이 data.sql파일만 생성 후 spring.jpa.hibernate.ddl-auto 설정으로
테이블 구성을 하였던 경우 에러가 발생되게 됩니다. 2.5 버전 부터는 jpa가 먼저 실행 되고 hibernate관련
설정이 동작 하기 때문에 테이블 생성 안된 상태로 data를 초기화 하는 문제가 있습니다.
이 경우 spring.jpa.defer-datasource-initialization=true 설정을 추가 해주면 동작이 가능 합니다.
아래의 링크에 자세한 내용이 나와 있지만 jpa와 hibernate를 혼용 하는건 권장 하지 않는다고 하니 참고 하시면
될거 같습니다.
https://www.baeldung.com/spring-boot-data-sql-and-schema-sql
'spring' 카테고리의 다른 글
spring-boot application.properties DB접속 정보 암호화 (0) | 2022.03.21 |
---|---|
이클립스 gradle 빌드 (0) | 2022.03.15 |
spring boot 실행시 DB 연결에러 (0) | 2021.11.25 |
spring boot lucy filter 추가 + filter 추가 (0) | 2021.11.16 |
spring bean validation 어노테이션 (0) | 2021.06.22 |