-
Notifications
You must be signed in to change notification settings - Fork 7
flyway ์ค์
dependencies {
implementation 'org.flywaydb:flyway-core'
}
main > resource > db.migration ํจํค์ง ์ถ๊ฐ
V(์ซ์)__(์ธ๋๋ฐ 2๊ฐ)init.sql
V๋ ๊ผญ ๋๋ฌธ์๋ก ํ ๊ฒ
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 ์๋ฌ ๋ฐ์)
V2__init.sqlํ์ผ์ ๋ง๋ค์ด์ ๋ค์๊ณผ ๊ฐ์ด ์์ฑ
ALTER TABLE `testTable`
ADD
(
`testColumn1` varchar(255),
`testColumn2` varchar(255),
`testColumn3` varchar(255)
);
V1__init.sql์ ์ด๋ฏธ flyway๊ฐ ์คํ ํ๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝ ํ๋ฉด์๋จ
flyway๊ฐ V2 ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฐพ์์ ์ ์ฉํ๊ณ ํ์ด๋ฒ๋ค์ดํธ๊ฐ validateํด์ ๋ฌธ์ ์์ผ๋ฉด ์ ์ ์๋๋๋ค.