728x90
귀차니즘의 발동
application.properties의 ddl-auto를 create로 해놓으면
Spring boot를 실행할 때 테이블이 자동 생성된다.
spring.jpa.hibernate.ddl-auto=create
이 경우 테이블만 생성이 되기 때문에,
회원가입 / 로그인 / 조회 등을 테스트 하기 위해
DB에 직접 쿼리를 날려주거나 PostMan, MVC 등을 이용하여 정보를 생성했다.
매번 포스트맨으로 회원가입, 로그인 등등 데이터들을 만들어주는게 아주 귀찮지 아니한가?
그래서!!
일일이 데이터들을 매번 만들어주지 않아도,
서버 실행시 테이블 뿐만 아니라
이 테이블에 테스트를 위한 데이터들이 자동으로 같이 저장되길 바랬다.
해결
설정파일
application.properties에 다음 구문을 추가
spring.jpa.defer-datasource-initialization = true
spring.sql.init.mode = always
spring.jpa.defer-datasource-initialization = true
스크립트를 사용하여 Hibernate에 의해 생성된 테이블에 데이터를 채우기 위한 설정.
sql 스크립트는 Hibernate가 초기화되기 전에 실행됨.
gradle 2.5이상 버전부터
spring.sql.init.mode = always
data.sql과 같은 스크립트의 동작을 설정
- always: 모든 데이터베이스에 sql 스크립트를 동작시킨다.
- embedded: embedded 데이터베이스만 sql 스크립트를 동작시킨다.
- never: 모든 데이터베이스에 sql 스크립트를 동작시키지 않는다.
스크립트 파일(data.sql) 생성
resources 폴더에 sql 파일을 생성해준다.
예시코드
INSERT INTO user(id, birthdate, gender, name, password, phoneNumber) VALUES ('1','1960-05-02','0','홍길동','$2a$10$V9LeNOSrAeJq1xUcfX.j3utpTLw3FWNof53yh3/S9ktClDNldKFBu','01012341234');
서버 실행, 테이블 확인
흡족하군
728x90