Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- wildfly
- Windows
- JavaScript
- BPMN
- IntelliJ
- JPA
- gson
- LOG4J
- nodejs
- database
- log4j2
- kubectl
- tibero
- react
- Kubernetes
- nginx
- Java
- VSCode
- gradle
- intellijIDEA
- dbeaver
- springboot
- mybatis
- NCP
- jetbrains
- docker
- MySQL
- Git
- useEffect
- Spring
Archives
- Today
- Total
두 손끝의 창조자
스프링 프로젝트에서 데이터베이스 데이터 초기화 본문
프로젝트에 루트에서 다음과 같은 파일을 찾아서 초기화 시 실행한다.
- schema.sql
- data.sql
- schema-${platform}.sql
- data-${platform}.sql
${platform}
은 spring.datasource.platform 의 값을 사용한다.spring.datasource.initialization-mode
속성을 always
로 설정한다.
JPA를 사용한다면 spring.jpa.hibernate.ddl-auto
속성을 none
으로 해야 테이블 자동 생성등을 비활성한다.
이런 방법은 sql이 DATABASE에 따라 변경이 필요할 수 있다.
@PostConstruct
애노테이션으로 메소드를 지정하면 스프링 컨텍스트가 모두 로드 된 후 해당 메소드를 실행하기 때문에 데이터 초기화시 유용하게 사용할 수 있다.
@Component
public class InitData{
private final Repository someRepository;
@PostConstruct
private void loadData(){
someRepository.deleteAll();
repository.save(new SomeEntity(~~~));
}
}
@Component
와 @Profile
을 조합하여 다양한 상황의 데이터를 만들어 낼 수 있을 것이다.
반응형
Comments