Flyway 상세 설명 및 Springboot 통합 Flyway 의 상세 한 튜 토리 얼

5133 단어 FlywaySpringboot
Flayway 는 데이터베이스 버 전 관리 도구 로 데이터베이스 버 전 자동 업 그 레이 드 를 지원 합 니 다.Migrations 는 sql 스 크 립 트 로 쓸 수도 있 고 자바 코드 에 쓸 수도 있 습 니 다.Command Line 과 자바 api 뿐만 아니 라 Build 구축 도구 와 Spring boot 도 지원 하 며 분포 식 환경 에서 데이터 베 이 스 를 안전 하고 안전하게 업그레이드 할 수 있 으 며 실패 복구 도 지원 합 니 다.
Flyway 의 가장 핵심 은 모든 버 전의 진화 와 상 태 를 기록 하 는 MetaData 표 입 니 다.Flyway 가 처음 시작 하면 기본 이름 인 SCHEMA 를 만 듭 니 다.VERSION 의 원소 국 표.표 에 버 전,설명,실행 할 sql 스 크 립 트 등 이 저장 되 어 있 습 니 다.
sql 스 크 립 트 형식:V+버 전 번호+더 블 밑줄+초속+끝 문자 
예:V1INIT_DATABASE.sql
위의 V 는 기본 값 으로 통과 할 수 있 습 니 다.
 접 두 사 를 지정 하기 위해 flyway.sql-migration-prefix
Migrate:
Migrate 는 데이터 Schema 를 최신 버 전 으로 옮 기 고 Migrate 를 할 때 MetaData 메타 데이터 시트 를 검사 하 며 존재 하지 않 으 면 MetaData 시트 를 만 들 고 MetaData 는 데이터베이스 과거 기록 변경 등 정 보 를 기록 하 는 데 사 용 됩 니 다.
Migrate 는 지정 한 파일 시스템 이나 classpath 의 Migrations 를 검색 합 니 다.MetaData 의 기록 과 비교 하여 버 전 업 그 레이 드 를 진행 합 니 다.
Clean:대응 하 는 데이터베이스 Schema 의 모든 대상 을 제거 합 니 다.표 구조,보기,저장 과정 등 을 포함 하여 clean 작업 은 dev 와 test 단계 에서 사용 하기 좋 습 니 다.
Info:모든 Migrations 의 상세 함 과 상태 정 보 를 인쇄 하 는 데 사용 되 며,MetaData 와 Migrations 를 통 해 완 성 된 것 으로 현재 데이터베이스 버 전 을 빠르게 찾 을 수 있 습 니 다.
vaidate:apply 의 Migrations 가 변경 되 었 는 지 검증 하고 기본적으로 열 렸 습 니 다.메타 데이터 시트 와 로 컬 Migrations 의 checkNum 값 을 비교 하 는 원리 이 며,값 이 같 으 면 검증 이 통과 되 고 그렇지 않 으 면 실패 합 니 다.
BaseLine:데이터베이스 Schema 구조 가 존재 하 는 데이터베이스 에 대한 해결 방안 입 니 다.비 어 있 는 데이터베이스 에 MetaData 표를 새로 만 들 고 Migrations 를 이 데이터베이스 에 적용 합 니 다.기 존 표 구조의 데이터베이스 에 도 적용 할 수 있 고 Metadata 표를 추가 할 수 있 습 니 다.
repair:repair 작업 은 metaData 표를 복구 할 수 있 습 니 다.이 작업 은 metadata 에 오류 가 발생 했 을 때 유용 합 니 다.
용도:
  1):실패 한 Migration 기록 을 삭제 하고 DDL 이 지원 되 지 않 는 데이터베이스 만 을 대상 으로 합 니 다.
Flayway 사용:
1.flyway 의 의존 도입:

<dependency>
   <groupId>org.flywaydb</groupId>
   <artifactId>flyway-core</artifactId>
   <version>5.0.3</version>
  </dependency>

<plugin>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-maven-plugin</artifactId>
    <version>5.0.3</version>
   </plugin>
2.Maven 의 Springboot 프로젝트 를 새로 만 들 고 설정 파일 에 데이터 원본 정 보 를 설정 합 니 다.

server.port=8088
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
3.classpath 에/db/migration 폴 더 를 새로 만 들 고 sql 스 크 립 트 파일 을 만 듭 니 다.

use testdb;
 
CREATE TABLE person (
 id int(11) NOT NULL AUTO_INCREMENT,
 first varchar(100) NOT NULL,
 last varchar(100) NOT NULL,
 dateofbirth DATE DEFAULT null,
 placeofbirth varchar(100) not null,
 PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
insert into person (first,last,dateofbirth,placeofbirth) values('Dursun','KOC', STR_TO_DATE('02/10/1982', '%m/%d/%Y'),'Erzincan');
insert into person (first,last,dateofbirth,placeofbirth) values('Durseeun','KeeOC', STR_TO_DATE('05/10/1982', '%m/%d/%Y'),'Erzeeincan');
4.springboot 프로젝트 시작:

sql 스 크 립 트 를 불 러 왔 습 니 다.
5.데이터베이스 보기:
fly way-schema-history 표를 만 들 었 습 니 다.이 버 전 은 기본적으로 이 표 입 니 다.schema 표 의 이름 을 지정 하려 면 설정 할 수 있 습 니 다.

flyway.tableflyway
6:fly way 의 기타 설정:

flyway.baseline-description             .
flyway.baseline-on-migrate        schema  ,            ,          ,  false.
flyway.baseline-version             schema      ,    1.
flyway.check-location             ,  false.
flyway.clean-on-validation-error              clean,  false.
flyway.enabled    flywary,  true.
flyway.encoding        ,  UTF-8.
flyway.ignore-failed-future-migration                 ,  false.
flyway.init-sqls            SQL.
flyway.locations       ,  db/migration.
flyway.out-of-order         ,  false.
flyway.password        .
flyway.placeholder-prefix    placeholder   ,  ${.
flyway.placeholder-replacementplaceholders      ,  true.
flyway.placeholder-suffix    placeholder   ,  }.
flyway.placeholders.[placeholder name]  placeholder value
flyway.schemas    flywary   schema,     ,        schema.
flyway.sql-migration-prefix       ,   V.
flyway.sql-migration-separator           ,  __
flyway.sql-migration-suffix       ,   .sql
flyway.tableflyway        ,   schema_version
flyway.target          ,   latest version
flyway.url      JDBC URL,        ,          
flyway.user         
flyway.validate-on-migrate       ,   true.
flyway 의 입문 은 여기까지 입 니 다.다른 내용 은 뒤에 보충 하 겠 습 니 다.
Flyway 에 대한 상세 한 설명 및 Springboot 통합 Flyway 의 상세 한 튜 토리 얼 에 관 한 글 은 여기까지 입 니 다.더 많은 관련 Flyway 소개 Springboot 통합 Flyway 내용 은 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기