HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🛁
공부기록
/
🧑🏻‍💻
TIL
/
플라이웨이?https://www.youtube.com/watch?v=pxDlj5jA9z4

플라이웨이?https://www.youtube.com/watch?v=pxDlj5jA9z4

태그
날짜
속성
Flyway란?Flyway와 JPAFlyway?어떤 상황에서 쓰일까?어떻게 쓸까?
 

Flyway란?

  • 오픈 소스 데이터베이스 마이그레이션 도구
  • 데이터베이스의 형상관리를 목적으로 하는 툴이다.
    • 데이터베이스의 형상관리란?
      • git을 통해 우리가 코드를 관리하는 것의 데이터베이스 버전으로 볼 수 있다.
      • git에서는 코드를 파일별로 로깅을 통해서 변화의 이력을 추적한다.
      • flayway는 데이터베이스의 DDL 이력을 쌓아서 DDL이 어떻게 변화되었는지 관리하는 툴로 사용할 수 있습니다.
      • notion image
  • 버전별 DB 스크립트 파일을 열거 해 두면 알아서 SQL 파일을 수정해 주고 DB 변경 이력에 대한 관리를 해주는 도구
  • 공식 사이트에 따르면 gradle, maven, CLI, Java API 입니다.
 

Flyway와 JPA

 
 
Video preview
 

Flyway?

  • DB 마이그레이션이란?
    • 편한 말로 DB 형상관리
      • 형상관리?
        • 소프트웨어의 변경 사항을 체계적으로 추적하고 통제하는 것
          • GIT
          • 즉 우리는 Flyway라는 툴로 DB 변경 관리를 하고 싶은 것이다. 마치 git으로 코드 히스토리를 다루듯
          • 그중 하나의 툴로 flyway다
 

어떤 상황에서 쓰일까?

@Entity public class Member { @Id @GeneratedValue private Long id; private String name; protected Member() { } }
  • 새로운 컬럼들이 추가되면?
    • 특히 우리가 많이 사용하는 방법
      • yml 파일에..
        • spring.jpa.hibernate.ddl-auto = create or update 로 반영시킨다.
        • update 는 부족한 부분이 뭘까?
          • 업데이트는 테이블을 수정하지 않고 부족한 부분만 추가한다.
 

어떻게 쓸까?

flyway는 가장 먼저 metadata table이란 것을 만든다.
변경 이력을 저장하는 테이블을 저장한다고 생각하면 된다.