본문 바로가기
Java

Spring Data JPA 더미 데이터 만들기-data.sql 사용

by GGShin 2022. 10. 1.

 

프론트에서 회원 더미 데이터를 요청하셔서 더미 데이터를 생성해보았습니다.

어떻게 하는 건가 궁금했었는데, 이 참에 방법을 공부했습니다.

 

1. 먼저 resource 폴더에 data.sql 파일을 만들어 줍니다.

그리고 data.sql 내부에 원하는 Query 문을 작성해줍니다.

 

2. application.yml (또는 application.properties) 파일에 설정을 추가해줍니다.

 

 

위에 작성된 설정 중 data.sql 파일에 설정한 query문이 정상적으로 작동되게 하기 위한 설정은 defer-datasource-initialization:true 입니다.

어떤 설정인지 한 번 살펴보겠습니다.

 

설명에는 Bean들이 생성/init될 때까지 DataSource initialization을 보류할 것인지 아닌지 결정하는 설정이라고 되어있습니다.

기본 값은 false인데, true로 설정하게 되면 Hibernate이 init 되기 전에 data.sql script 가 실행되게 됩니다. 

 

만일 해당 부분을 false로 내버려두면 아래처럼 오류가 발생합니다.

 

JdbcSQLSyntaxErrorException이 발생하네요.

 

모든 application.yml 설정을 다 아는 것은 아니지만 이렇게 알게 될 때마다 정리를 좀 해두어야겠습니다 ㅎㅎ

 

감사합니다!


👀 이번에 항상 궁금했던 log에 예쁜 색상 추가하는 설정 방법도 알게되었습니다.

spring:
  output:
    ansi:
      enabled: always

 

application.yml에 이렇게 설정해주면 콘솔에 찍히는 로그에 색상이 추가되어 가독성이 좀 더 좋아집니다.

 

설정 전

 

설정 후


 

참고 자료

 

https://devvkkid.tistory.com/262

 

data.sql이 동작하지 않을 때, 의심해봐야 할 것

스프링에서 test 패키지 내부에 data.sql을 넣은 것만으로도 data.sql 내부의 쿼리를 실행시킬 수 있다. 이런 방법으로 테스트용 더미 데이터를 생성하고 테스트를 동작시킬 수 있다. 비슷한 방법으로

devvkkid.tistory.com

 

https://zzerosouth.tistory.com/51

 

[Spring Boot] 테스트 데이터 생성 (.sql 실행)

개요. 단위테스트, 통합테스트 코드를 작성하면서, 한 가지 의문점이 생겼다. 로컬 환경에서 테스트 할 때는 더미데이터를 직접 넣어둔 상태로 테스트를 진행했다.(혹은 테스트코드 앞단에 Rollba

zzerosouth.tistory.com

 

https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html

 

Common Application Properties

 

docs.spring.io

https://stackoverflow.com/questions/67695069/spring-boot-datasource-initialization-error-with-data-sql-script-after-2-5-0-upg

 

Spring Boot datasource initialization error with data.sql script after 2.5.0 upgrade

I have a project configured with Spring Boot and Spring Data JPA. My project contains the following data.sql initialization script (I'm just starting developing my application that's why I use an

stackoverflow.com

 

반응형