- Global Rule
- DB-Mysql Module
- 제공되는 기능
- [Flyway Migration Guideline](#Flyway Migration Guideline)
- Contributors
- Update History
storage
모듈은 DB와 관련된 기능을 제공한다.- DB의 종류에 따라
storage
모듈을 세분화하여 구성할 수 있다.
- DB의 종류에 따라
storage
모듈은 Business 로직을 알지 못해야 한다.storage
모듈은 Business 로직에 의존성을 갖지 않아야 한다.storage
모듈의 수정이 Business 로직에 영향을 미치지 않아야 한다.
Entity
와 같은 도메인 개념이 아닌 개념은storage
모듈 내부에서만 사용되어야 한다.Entity
,Embeddable
,Value Object
등의 도메인 개념은storage
모듈 외부에서도 사용될 수 있다.- 그 외의 QueryDSL을 위한
DTO Class
등은storage
모듈 내부에서만 사용되어야 한다.
:storage:db-mysql
모듈은 MySQL DB와 관련된 기능을 제공한다.
- Domain Service
- Transaction
- Repository
- QueryDSL
- JPA
- Entity
-
Migration 파일 명명 규칙
V[Version]__[Description].sql
- Version : 버전정보
- 1: 메이저 버전
- 0: 마이너 버전
- 0: 패치 버전
- Separator : 언더바 2개 __
- Description : 파일 설명
- Create_[테이블명]_table : 테이블 생성
- Drop_[테이블명]_table : 테이블 삭제
- Add_[컬럼명]column_to[테이블명]_table : 테이블 컬럼 추가
- Drop_[컬럼명]column_from[테이블명]_table : 테이블 컬럼 삭제
- Refactor_[테이블명]_table: 테이블 리팩토링
- Add_foreign_key_to_[테이블명]_table
- Version : 버전정보
-
파일명 예시
V1.0.0__Initial_schema.sql
: 스키마 초기 설정V1.0.1__Add_age_column_to_user_table.sql
V1.1.0__Drop_address_column_from_user_table.sql
V2.0.0__Refactor_user_table.sql
-
유의사항
- migration 파일은
:storage:db-mysql:src:main:resources:migration
에 위치한다. - mysql.yml의 flyway.baseline-version 속성은 해당 버전 이후의 마이그레이션만 적용하는 속성이다.
- 이미 적용된 migration 파일은 수정하지 않는다.
- 새로운 변경사항은 항상 새 migration 파일로 작성한다.
- migration 파일은
:storage:db-redis
모듈은 Redis DB와 관련된 기능을 제공한다.
- Data Cache
루카/최선규 | 매실/김현재 | 초코/김현지 | 캐슬/이호성 | 다나/서주원 |