728x90
반응형
Database Migration
Database 스키마 버전관리 기능
Flyway 연동하기
1. 의존성 추가
// pom.xml
<!-- Flyway -->
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>
2. Database 실행
Docker
를 이용해 PostgreSQL
을 실행한다.
3. application.properties 설정
// application.properties
spring.datasource.url=jdbc:postgresql://localhost:5432/springboot
spring.datasource.name=jinseo
spring.datasource.password=pass
spring.jpa.hibernate.ddl-auto=validate // DB Table 과 Entity 일치하는지 검증만
spring.jpa.generate-ddl=false
spring.jpa.show-sql=true
4. SQL 파일 생성
/resources/db/migration/{vendor}
에 스키마, 데이터 관련 SQL 파일 생성
// V1__init.sql
drop table if exists account;
drop sequence if exists hibernate_sequence;
create sequence hibernate_sequence start with 1 increment by 1;
create table account (id bigint not null, password varchar(255), username varchar(255), primary key (id));
Appliation 실행 시 Flyway에 의해 V1__init.sql
이 실행된다.
해당 SQL이 실행된 후 spring.jpa.hibernate.ddl-auto=validate
설정에 의해 DB Table
과 Entity
가 일치하는지 검증 수행
* SQL 파일 생성 시 주의 사항
- 형식 : V숫자__이름.sql
- 앞에 V는 꼭 대문자로 작성
- 숫자는 순차적으로 작성 (타임스탬프 권장)
- 숫자와 이름 사이에 언더바 2개
- 이름은 가능한 서술적으로 작성
- 변경사항은 새로운 SQL 파일을 만들어서 작성
5. Account 객체 내 active 추가
// Account.java
@Entity
public class Account {
@Id @GeneratedValue // 자동으로 생성되는 값
private Long id;
private String username;
private String password;
private boolean active; // 새로 추가
getter/setter
equals()
hashCode()
}
스키마 변경을 위한 V2__add_active.sql
을 추가
// V2__init.sql
alter table account add column active boolean;
Application 실행하면 스키마 변경사항이 반영된 것을 확인할 수 있다.
728x90
반응형
'Dev > Spring Boot' 카테고리의 다른 글
[스프링 부트 개념과 활용] 스프링 데이터 10부 (0) | 2020.08.28 |
---|---|
[스프링 부트 개념과 활용] 스프링 데이터 9부 (0) | 2020.08.28 |
[스프링 부트 개념과 활용] 스프링 데이터 7부 (0) | 2020.08.27 |
[스프링 부트 개념과 활용] 스프링 데이터 6부 (0) | 2020.08.27 |
[스프링 부트 개념과 활용] 스프링 데이터 5부 (0) | 2020.08.27 |
댓글