Flyway 가이드
Flyway 가이드
Flyway 가이드
기존 migration 방식 - 1) GUI 편집
Flyway 가이드
기존 migration 방식 - 2) Compare
Flyway 가이드
기존 migration 방식 - 3) Update시 sql 자동 작성. Git 으로 관리
Flyway 가이드
Migration 방법 3가지
GORM만 사용
Goose, golang-migrate 등�Golang 특화 라이브러리 사용
Redgate flyway 툴 사용
goose 또는 golang-migrate
Flyway 가이드
GORM만 사용했을 때
+
자동으로 DB에 테이블 생성
작은 프로젝트에서는
GORM만 써도 충분
AutoMigrate는
칼럼 삭제 반영 제대로 안됨.
Flyway 가이드
Goose/golang-migrate VS flyway
Flyway 가이드
택한 방법 : 하이브리드(Flyway + GORM)
데이터만
CRUD
테이블
CRUD
Flyway 가이드
택한 방법 : 하이브리드(Flyway + GORM)
Flyway 가이드
Migrate 실행법 - 1) DB 생성
Database는 flyway 거치지 않고
직접 생성하도록 함.
Owner는 도커 컨테이너에 미리 설정된
Dbadmin으로 지정
dbadmin : 테이블 CRUD
dbuser : 데이터 CRUD
Flyway 가이드
Migrate 실행법 - 2) SQL 작성
VYYMMDD_N__description.sql
N은 1~9 한자리 자연수
숫자로 버전 구분하므로 네이밍 중요
1.10보다 1.2가 다음
Flyway 가이드
Migrate 실행법 - 3) Conf 파일 설정
접속 정보 -> 명령어 매번 치기 번거로움.
미리 flyway.conf 파일에 적어놨다가
나중에 불러주면 됨.
명령어 치기 전
미리 db가 만들어져 있어야 함.
(접속할 때 꼭 db 정보가 필요)
Flyway 가이드
Migrate 실행법 - 4) migrate 명령어 실행
접속 정보 적어놓은 파일 경로 적고
Migrate 명령어 실행
Flyway 가이드
Migration 실행시 DB에서 실제로 일어나는 일
직접 시연
Flyway 가이드
Migrate 초기화 방법
Migrate 명령어로 실행한 모든것을 전부 리셋해버림..
내가 만든 테이블도 없어지고 flyway_schema_history 도 없어짐.
운영 환경에서 사용자 데이터 들어오고 난 다음에는 절대 사용 금지!!!!
개발 환경에서만
직접 시연
Flyway 가이드
서비스마다 Database를 따로 가져가기
Cluster
Database
Database
Schema
Schema
Table
Table
Table
Table
Flyway 가이드
Submodule 사용법
메인 레포
DB 레포
업데이트 해주기
메인 레포에서 최초 1회 실행
Flyway 가이드
Submodule 사용법
서비스
DB
계정 서비스
계정 DB
알림 서비스
알림 DB
문제 서비스
문제 DB
구매 서비스
구매 DB
Flyway 가이드
메인 템플릿과 DB 템플릿을 따로 포크하고 둘을 연결해줘야 합니다.
서비스
DB
Go
템플릿
DB
템플릿
Flyway 가이드
Flyway 사용법