TestCode

스프링부트 실행 시 .sql로 데이터 insert하기

salmon16 2024. 6. 19. 17:01

 

 

 

개요

 

프로젝트를 진행하면서 개발할 때 ddl-auto create 옵션을 사용할 때 테이블 데이터가 된다. 데이터베이스에 데이터를 매번 Postman으로 데이터를 입력하는 대신, data.sql 파일을 생성하여 서버가 실행될 때 데이터베이스에 자동으로 SQL이 실행되도록 설정했다.

 

 

 

방법

 

1. 프로젝트의 resources폴더에 data.sql 파일을 생성한다.

2. data.sql 폴더 속 실행할 sql을 작성한다.

insert into product(product_number, type, selling_status, name, price)
values ('001', 'HANDMADE', 'SELLING', '아메리카노', 4000),
       ('002', 'HANDMADE', 'SELLING', '카페라떼', 4500),
       ('003', 'BAKERY', 'STOP_SELLING', '크루아상', 3500);

3. yml 설정 파일에 defer-datasource-initialization: true로 설정해 준다.

(Hibernate 초기화 이후 data.sql을 실행시켜야 하므로 false로 할 경우 Hibernate 초기화 이전에 실행되어서 ddl 이전에 실행이 돼 오류가 발생한다.

 

  jpa:
    hibernate:
      ddl-auto: create
    show-sql: true
    properties:
      hibernate:
        format_sql: true
    defer-datasource-initialization: true

 

실행 결과

데이터베이스에 데이터가 잘 저장되었다.

'TestCode' 카테고리의 다른 글

JUnit 객체의 필드 값 확인하기  (0) 2024.07.15
Mockito 사용하기  (0) 2024.07.13
컨트롤러 테스트하기  (0) 2024.06.30
Intellij에서 HTTP 요청 보내기  (0) 2024.06.22
@AfterEach  (0) 2024.06.22