Skip to content

flyway ์„ค์ •

๋ผ๋ฉด(์ด์ค‘ํ˜) edited this page Aug 19, 2020 · 1 revision

gradle ์„ค์ •

dependencies {
    implementation 'org.flywaydb:flyway-core'
}

ํŒจํ‚ค์ง€ ์„ค์ •

main > resource > db.migration ํŒจํ‚ค์ง€ ์ถ”๊ฐ€

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํŒŒ์ผ ์ด๋ฆ„ ์„ค์ •

V(์ˆซ์ž)__(์–ธ๋”๋ฐ” 2๊ฐœ)init.sql

V๋Š” ๊ผญ ๋Œ€๋ฌธ์ž๋กœ ํ• ๊ฒƒ

YAML ์„ค์ •

spring:
  hibernate:
    ddl-auto: validate

ddl-auto์„ค์ •

validate ๋Š” ์‹ค์ œ db์™€ entity mapping์ด ์„œ๋กœ ๊ฐ™์ด ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ์ธ์ง€ ํ™•์ธ๋งŒํ•œ๋‹ค.

spring์„ ์‹คํ–‰ ํ•˜๋ฉด flyway๊ฐ€ ๊ฐ™์ด ์ž‘๋™ํ•˜๋ฉด์„œ ์ž‘์„ฑํ•œ sql์„ ์‹คํ–‰ํ•˜๊ณ  hibernate๊ฐ€ entity์™€ db table์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์—ฐ๊ฒฐ๋ฌ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

์ด ๊ณผ์ •์—์„œ ์„ฑ๊ณต ๋˜๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ db table์„ ๋ณด๋ฉด flyway_schema_history ํ…Œ์ด๋ธ”์ด ์ƒ์„ฑ๋˜๋Š”๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค

flyway_schema_history์—๋Š” sql์—์„œ ์ž‘์„ฑํ–ˆ๋˜ ์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์ €์žฅ๋œ๋‹ค.

์ฃผ์˜์ 

๋งŒ์•ฝ sql ํŒŒ์ผ์„ ์ž‘์„ฑํ•˜๊ณ  flyway๊ฐ€ ์ž‘๋™ํ•˜๊ณ  flyway_schema_history์— ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜์—ˆ๋‹ค๋ฉด ๊ทธ ์ดํ›„ sqlํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๊ณต๋ฐฑ ํ•˜๋‚˜๋ผ๋„ ์ถ”๊ฐ€ ์‚ญ์ œ ํ•˜๋ฉด์•ˆ๋œ๋‹ค ( ๊ณต๋ฐฑ ํ•˜๋‚˜๋ผ๋„ ๋ณ€๊ฒฝ๋œ๋‹ค๋ฉด checksum missing ์—๋Ÿฌ ๋ฐœ์ƒ)

DB ๋ณ€๊ฒฝ

์˜ˆ) Column ์ถ”๊ฐ€์‹œ

V2__init.sqlํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑ

ALTER TABLE `testTable`
    ADD
        (
        `testColumn1` varchar(255),
        `testColumn2` varchar(255),
        `testColumn3` varchar(255)
        );

V1__init.sql์€ ์ด๋ฏธ flyway๊ฐ€ ์‹คํ–‰ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€๊ฒฝ ํ•˜๋ฉด์•ˆ๋จ

flyway๊ฐ€ V2 ์˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ฐพ์•„์„œ ์ ์šฉํ•˜๊ณ  ํ•˜์ด๋ฒ„๋„ค์ดํŠธ๊ฐ€ validateํ•ด์„œ ๋ฌธ์ œ ์—†์œผ๋ฉด ์ •์ƒ ์ž‘๋™๋œ๋‹ค.

Clone this wiki locally