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 |
Tags
- JavaScript
- tasklet
- Spring Security
- REACT
- cheerio
- vue
- SpringRESTDocs
- preventdefault
- vuejs
- Filter
- UsernamePasswordAuthenticationFilter
- AuthenticatoinProvide
- T-OTP
- Flyway
- 리액트
- Spring Batch
- gradle
- cloud native
- Spring REST Docs
- MFA
- openapi3
- Pender
- MSA
- stopPropogation
- Crawling
- axios
- Reduxpender
- OpenStack
- SpringBoot
- SWAGGER
Archives
- Today
- Total
Miracle Morning, LHWN
14-1. Flyway 사용해보기 - Gradle Usage 본문
# gradle Project 를 생성해서 Flyway 를 사용해본다.
# 우선 프로젝트에 SQL 주소, user 정보 등을 설정하고 ddl-auto 가 어떤 방식으로 반영될지를 설정해준다.
// /main/resources/application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/db_example
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=none
# 그리고 flyway 가 데이터베이스에 접근할 때 사용하는 정보를 명시해주어야 하는데
여기에서는 REAL 환경과 TEST 환경을 분리하여 작성했다. (REAL 환경은 src/main/java, TEST 환경은 src/test/java)
하지만 여기서 주의해야할 점은 flyway 를 두 번 명시해주었기 때문에 실상 마지막에 작성한 속성만 적용된다는 점이다..
(실무에서는 절대 이러한 형태로 작성하면 안된다.)
// /build.gradle
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
// runtimeOnly 'com.h2database:h2'
runtimeOnly 'mysql:mysql-connector-java'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
test {
useJUnitPlatform()
}
//REAL
flyway {
url='jdbc:mysql://localhost:3306/db_example'
user='sa'
password='password'
locations=['classpath:db/migration']
}
//TEST
flyway {
url='jdbc:mysql://localhost:3306/db_example_test'
user='sa'
password='password'
locations=['filesystem:src/test/resources/db/migration']
}
이렇게 하고 터미널에서 ./gradlew 명령을 통해 flywayValidate 해주면 아직 Migrate 가 발생하지 않았다는 내용이 나온다.
이때 위에 설정한 내용처럼 flyway 가 자동으로 locations 경로를 탐색해서 Schema 를 찾는다. Schema 정의 내용은 아래와 같다.
// /src/main/resources/db/migration/V1__create_books.sql
CREATE TABLE books (
id BIGINT NOT NULL,
name VARCHAR(64),
author VARCHAR(64)
);
이후, SQL 쪽에도 접속해서 생성된 database, table 등을 확인해보면 아래와 같다.
출처 : https://fastcampus.co.kr/courses/204729/clips/
'IT 기술 > [JAVA] Spring Boot' 카테고리의 다른 글
15. Spring REST Docs (0) | 2021.05.26 |
---|---|
14-2. Flyway 사용해보기 - Flyway API (Java) (0) | 2021.05.25 |
13. DDL-AUTO 와 Flyway (0) | 2021.05.22 |
12. JPQL, Criteria, Query DSL (0) | 2021.05.17 |
11. JPA (Java Persistence API) (0) | 2021.05.17 |
Comments