Post

Spring R2DBC Migrations Using Flyway

Flyway를 활용한 Spring R2DBC 마이그레이션

Spring R2DBC Migrations Using Flyway

1. 개요

이 튜토리얼에서는 데이터베이스 마이그레이션에 일반적으로 사용되는 오픈소스 도구인 Flyway를 사용하여 Spring R2DBC 마이그레이션을 진행한다.


2. 의존 구성

Flyway와 호환되는 R2DBC 애플리케이션을 구성하려면 다음과 같은 의존이 필요하다.

Flyway는 현재 R2DBC를 지원하지 않으므로 R2DBC 드라이버와 JDBC 드라이버를 같이 추가했다.

1
2
3
4
5
6
7
8
9
10
// r2dbc
implementation("org.springframework.boot:spring-boot-starter-data-r2dbc:3.0.4")

// postgresql
implementation("org.postgresql:postgresql:42.7.4")
implementation("org.postgresql:r2dbc-postgresql:1.0.7.RELEASE")

// flyway
implementation("org.flywaydb:flyway-core:10.22.0")  
implementation("org.flywaydb:flyway-database-postgresql:10.22.0")


3. 설정과 스크립트 구성

Flyway 마이그레이션에 필요한 구성과 스크립트를 살펴보자.

다음과 같이 설정 파일을 구성한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
spring:  
  r2dbc:  
    url: r2dbc:postgresql://localhost:5432/testdb
    driver: postgresql  
    protocol: r2dbc  
    host: localhost
    port: 5432
    database: testdb
    username: test
    password: test
  
  flyway:  
    # Database URL
    url: jdbc:postgresql://localhost:5432/testdb
    # Migration Scipts Location
    locations: classpath:/db/migration
    # Database Username
    user: test
    # Database Password
    password: test
    baseline-on-migrate: true


다음으로 src/main/resources/db/migration 위치에 마이그레이션 할 V1__init_schema.sql 스크립트를 작성한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";  
  
CREATE TABLE IF NOT EXISTS member  
(  
    member_id             uuid PRIMARY KEY DEFAULT uuid_generate_v4(),  
    nickname              VARCHAR UNIQUE NOT NULL,  
    profile_image_path    VARCHAR UNIQUE,  
    authority             VARCHAR        NOT NULL,  
    withdrawal_date       TIMESTAMP,  
    until_suspension_date TIMESTAMP,  
    registered_date       TIMESTAMP      NOT NULL,  
    modified_date         TIMESTAMP      NOT NULL  
);

파일명은 반드시 다음 규칙을 준수해서 생성해야 한다.

Flyway 파일명 규칙 (<Prefix><Version>__<Description>.sql)

  • Prefix : 기본 접두사는 V이며, 이는 설정 파일에서 flyway.sqlMigrationPrefix 속성을 사용하여 변경할 수 있다.
  • Version : 마이그레이션 버전 번호. 주요 버전과 부 버전은 밑줄로 구분할 수 있다. 마이그레이션 버전은 항상 1로 시작해야 한다.
  • Description : 마이그레이션에 대한 텍스트 설명이다. Version과 Description 사이의 이중 밑줄이 두 값을 구분하도록 한다.


4. 테스트

위와 같이 구성한 후에 애플리케이션을 실행하면 다음과 같이 로그가 출력된다.

flyway3

DB를 확인해보면 flyway_schema_history 테이블이 생긴 것을 볼 수 있고, 조회하면 다음과 같이 정상적으로 마이그레이션이 된 것을 확인할 수 있다.

flyway2


5. 부록

속성설명가능한 값 및 예시기본값
flyway.urlJDBC URL을 사용하여 데이터베이스에 연결합니다. 다양한 데이터베이스에 대한 예시가 포함되어 있습니다.- Aurora MySQL: jdbc:mysql://<instance>.<region>.rds.amazonaws.com:<port>/<database>?<key1>=<value1>&<key2>=<value2>...
- PostgreSQL: jdbc:postgresql://<host>:<port>/<database>?<key1>=<value1>&<key2>=<value2>...
- MySQL: jdbc:mysql://<host>:<port>/<database>?<key1>=<value1>&<key2>=<value2>...
기타 데이터베이스에 맞는 JDBC URL 형식
없음 (필수 설정)
flyway.driverJDBC 드라이버의 완전한 클래스 이름입니다. 기본적으로 flyway.url을 기반으로 자동 감지됩니다.예: org.postgresql.Driver, com.mysql.cj.jdbc.Driver자동 감지 (flyway.url 기반)
flyway.user데이터베이스에 연결할 때 사용할 사용자 이름입니다. 지정하지 않으면 Flyway가 비밀번호 없는 인증 방법을 사용하지 않는 경우 입력을 요청합니다.데이터베이스 사용자 이름없음 (입력 요청)
flyway.password데이터베이스에 연결할 때 사용할 비밀번호입니다. 지정하지 않으면 Flyway가 비밀번호 없는 인증 방법을 사용하지 않는 경우 입력을 요청합니다.데이터베이스 비밀번호없음 (입력 요청)
flyway.connectRetries데이터베이스에 연결을 시도할 최대 횟수입니다. 각 실패 시 Flyway는 다시 시도하기 전에 1초를 기다리며, 이후 시도 간격은 두 배로 증가합니다.정수 값 (예: 3, 5)0
flyway.connectRetriesInterval데이터베이스에 연결을 시도할 때 재시도 간 최대 시간을 초 단위로 설정합니다. 지정된 값으로 재시도 간격이 제한됩니다.정수 값 (예: 120)120
flyway.initSqlFlyway가 새 데이터베이스 연결을 초기화할 때 즉시 실행할 SQL 문입니다.예: "SET search_path TO my_schema;"없음
flyway.defaultSchemaFlyway가 관리할 기본 스키마입니다. 스키마 이름은 대소문자를 구분합니다. 지정하지 않으면 flyway.schemas의 첫 번째 스키마가 기본 스키마로 사용됩니다.스키마 이름 (예: public)flyway.schemas의 첫 번째 스키마 또는 데이터베이스 연결의 기본 스키마
flyway.schemasFlyway가 관리할 스키마의 쉼표로 구분된 목록입니다. 스키마 이름은 대소문자를 구분합니다. 지정하지 않으면 데이터베이스 연결의 기본 스키마가 사용됩니다.쉼표로 구분된 스키마 이름 (예: public, audit)데이터베이스 연결의 기본 스키마
flyway.createSchemasflyway.schemas 속성에 지정된 스키마를 Flyway가 자동으로 생성할지 여부를 설정합니다.true, falsefalse
flyway.tableFlyway가 마이그레이션 히스토리를 저장할 테이블의 이름입니다. 기본값은 flyway_schema_history입니다. 단일 스키마 모드에서는 데이터 소스의 기본 스키마에 테이블이 생성됩니다. 다중 스키마 모드에서는 flyway.schemas의 첫 번째 스키마 또는 flyway.defaultSchema에 테이블이 생성됩니다.테이블 이름 (예: flyway_schema_history, my_flyway_history)flyway_schema_history
flyway.tablespaceFlyway가 사용할 스키마 히스토리 테이블을 생성할 테이블스페이스입니다. 데이터베이스 연결의 기본 테이블스페이스가 사용됩니다.테이블스페이스 이름없음
flyway.locations마이그레이션을 검색할 위치의 쉼표로 구분된 목록입니다. 기본값은 filesystem:<<INSTALL-DIR>>/sql입니다. 위치 유형은 접두사에 따라 결정됩니다.예: classpath:db/migration, filesystem:/migrations
와일드카드 사용 가능 (예: filesystem:migrations/*/oracle)
filesystem:<<INSTALL-DIR>>/sql
flyway.failOnMissingLocations지정된 위치가 존재하지 않을 경우 실패할지 여부를 설정합니다.true, falsefalse
flyway.loggersFlyway가 사용할 로거입니다. 유효한 옵션은 auto, console, slf4j2, log4j2, apache-commons입니다. 또는 다른 로거를 사용하려면 완전한 클래스 이름을 지정할 수 있습니다.auto, console, slf4j2, log4j2, apache-commons 또는 완전한 클래스 이름auto
flyway.resolvers마이그레이션을 해결하기 위해 사용할 사용자 정의 MigrationResolver의 완전한 클래스 이름 목록입니다.쉼표로 구분된 클래스 이름 (예: com.example.CustomResolver)없음
flyway.skipDefaultResolversflyway.resolvers에 정의된 사용자 정의 리졸버만 사용하고 기본 제공 리졸버(jdbc, spring-jdbc, sql)를 건너뛸지 여부를 설정합니다.true, falsefalse
flyway.jarDirsJDBC 드라이버 및 Java 기반 마이그레이션이 포함된 디렉토리의 쉼표로 구분된 목록입니다.디렉토리 경로 (예: filesystem:/path/to/jars)<INSTALL-DIR>/jars
flyway.sqlMigrationPrefix버전된 SQL 마이그레이션 파일의 접두사입니다. 기본값은 V입니다.문자열 (예: V, R, S)V
flyway.undoSqlMigrationPrefixUndo SQL 마이그레이션 파일의 접두사입니다. 기본값은 U입니다. (Flyway Teams only)문자열 (예: U)U
flyway.repeatableSqlMigrationPrefix반복 가능한 SQL 마이그레이션 파일의 접두사입니다. 기본값은 R입니다.문자열 (예: R)R
flyway.sqlMigrationSeparatorSQL 마이그레이션 파일의 접두사와 버전 사이의 구분자입니다. 기본값은 __입니다.문자열 (예: __, _)__
flyway.sqlMigrationSuffixesSQL 마이그레이션 파일의 확장자 목록입니다. 기본값은 .sql입니다. 여러 확장자를 쉼표로 구분하여 지정할 수 있습니다.쉼표로 구분된 확장자 (예: .sql, .pkg, .pkb).sql
flyway.streamSQL 마이그레이션을 스트리밍하여 실행할지 여부를 설정합니다. 기본값은 false입니다. (Flyway Teams only)true, falsefalse
flyway.batchSQL 문을 배치하여 실행할지 여부를 설정합니다. 기본값은 false입니다. (Flyway Teams only)true, falsefalse
flyway.executionInTransactionSQL을 트랜잭션 내에서 실행할지 여부를 설정합니다. 기본값은 true입니다.true, falsetrue
flyway.encodingSQL 마이그레이션 파일의 인코딩입니다. 기본값은 UTF-8입니다.인코딩 형식 (예: UTF-8, ISO-8859-1)UTF-8
flyway.detectEncodingFlyway가 SQL 마이그레이션 파일의 인코딩을 자동으로 감지할지 여부를 설정합니다. 기본값은 false입니다. (Flyway Teams only)true, falsefalse
flyway.placeholderReplacement플레이스홀더 치환을 사용할지 여부를 설정합니다. 기본값은 true입니다.true, falsetrue
flyway.placeholders.<name>SQL 마이그레이션 파일에서 사용할 플레이스홀더의 값을 설정합니다. <name>을 실제 플레이스홀더 이름으로 대체합니다.키-값 쌍 (예: flyway.placeholders.schema=public, flyway.placeholders.env=dev)없음
flyway.placeholderPrefix모든 플레이스홀더의 접두사입니다. 기본값은 ${입니다.문자열 (예: ${, <)${
flyway.placeholderSuffix모든 플레이스홀더의 접미사입니다. 기본값은 }입니다.문자열 (예: }, >)}
flyway.placeholderSeparator기본 플레이스홀더의 구분자입니다. 기본값은 :입니다.문자열 (예: :):
flyway.scriptPlaceholderPrefix모든 스크립트 플레이스홀더의 접두사입니다. 기본값은 FP__입니다.문자열 (예: FP__)FP__
flyway.scriptPlaceholderSuffix모든 스크립트 플레이스홀더의 접미사입니다. 기본값은 __입니다.문자열 (예: __)__
flyway.targetFlyway가 마이그레이션을 고려할 목표 버전입니다. 기본값은 latest입니다. 특별한 값으로는 current, latest, next, <version>? 등이 있습니다.current, latest, next, <version>?
예: 1.0, 2.4, 6.5.3
latest
flyway.cherryPickFlyway가 마이그레이션할 때 고려할 마이그레이션 목록입니다. 쉼표로 구분된 버전 또는 설명을 지정할 수 있습니다. (Flyway Teams only)쉼표로 구분된 버전 또는 설명 (예: 1, 2.4, Insert_Data, Create_Table)모든 발견된 마이그레이션
flyway.validateOnMigrate마이그레이션을 실행할 때 자동으로 스키마 검증을 수행할지 여부를 설정합니다. 기본값은 true입니다.true, falsetrue
flyway.cleanOnValidationError스키마 검증 오류가 발생할 때 clean을 자동으로 실행할지 여부를 설정합니다. 개발 환경에서만 사용을 권장하며, 프로덕션에서는 false로 설정해야 합니다. 기본값은 false입니다.true, falsefalse
flyway.cleanDisabledclean 명령어 사용을 비활성화할지 여부를 설정합니다. 프로덕션 환경에서 실수로 clean을 실행하지 않도록 보호하기 위함입니다. 기본값은 true입니다.true, falsetrue
flyway.baselineVersion베이스라인을 실행할 때 스키마에 태그를 지정할 버전입니다. 기본값은 1입니다.버전 번호 (예: 1, 1.0, 100)1
flyway.baselineDescription베이스라인을 실행할 때 스키마에 태그를 지정할 설명입니다. 기본값은 << Flyway Baseline >>입니다.문자열 (예: "Initial Baseline", "Baseline migration")<< Flyway Baseline >>
flyway.baselineOnMigrateFlyway가 비어 있지 않은 스키마에서 migrate를 실행할 때 자동으로 베이스라인을 호출할지 여부를 설정합니다. 기본값은 false입니다.true, falsefalse
flyway.skipExecutingMigrationsFlyway가 마이그레이션 내용을 실제로 실행하지 않고 스키마 히스토리 테이블만 업데이트할지 여부를 설정합니다. 기본값은 false입니다. (Flyway Teams only)true, falsefalse
flyway.outOfOrder순서가 어긋난 마이그레이션을 허용할지 여부를 설정합니다. 기본값은 false입니다.true, falsefalse
flyway.outputQueryResultsFlyway가 마이그레이션을 실행할 때 쿼리 결과를 테이블로 출력할지 여부를 설정합니다. 기본값은 true입니다. (Flyway Teams only)true, falsetrue
flyway.callbacksFlyway 라이프사이클 알림에 사용자 정의 코드와 로직을 연결할 수 있는 콜백 스크립트의 위치를 지정합니다. 기본값은 비어 있습니다.완전한 클래스 이름 또는 패키지 이름 (예: com.example.FlywayCallback, classpath:flyway-callbacks.sql)없음
flyway.skipDefaultCallbacks사용자 정의 콜백만 사용하고 기본 제공 콜백(SQL)을 건너뛸지 여부를 설정합니다. 기본값은 false입니다.true, falsefalse
flyway.ignoreMigrationPatterns마이그레이션 검증 시 특정 패턴과 일치하는 마이그레이션을 무시할지 여부를 설정합니다. 기본값은 *:future입니다.패턴 목록 (예: repeatable:missing,versioned:pending,*:failed)*:future
flyway.validateMigrationNaming마이그레이션 및 콜백 스크립트가 올바른 명명 규칙을 따르지 않을 때 이를 검증할지 여부를 설정합니다. 기본값은 false입니다.true, falsefalse
flyway.mixed동일한 마이그레이션 내에서 트랜잭션과 비트랜잭션 SQL 문을 혼합할 수 있을지 여부를 설정합니다. 기본값은 false입니다.true, falsefalse
flyway.group모든 보류 중인 마이그레이션을 동일한 트랜잭션으로 그룹화하여 적용할지 여부를 설정합니다. 기본값은 false입니다.true, falsefalse
flyway.installedBy마이그레이션을 적용한 사용자 이름을 스키마 히스토리 테이블에 기록합니다. 기본값은 비어 있으며, 데이터베이스 연결의 현재 사용자가 사용됩니다.사용자 이름 (예: myuser)비어 있음 (현재 데이터베이스 사용자)
flyway.errorOverrides특정 SQL 상태 및 오류 코드를 재정의하여 특정 오류 또는 경고를 디버그 메시지, 정보 메시지, 경고 또는 오류로 처리할지 여부를 설정합니다. (Flyway Teams only)패턴 목록 (예: 99999:17110:E, S0001:0:I-, *:123:W)없음
flyway.dryRunOutput마이그레이션 드라이 런의 SQL 문을 출력할 파일의 경로를 설정합니다. 기본값은 비어 있습니다. (Flyway Teams only)파일 경로 (예: filesystem:/path/to/output.sql, classpath:flyway-dry-run.sql)비어 있음
flyway.lockRetryCount마이그레이션을 위해 잠금을 시도할 때 시도할 횟수입니다. 기본값은 50입니다. -1로 설정하면 무한히 시도합니다.정수 값 (예: 50, -1)50
flyway.jdbcProperties.<name>데이터베이스 연결 시 JDBC 드라이버에 전달할 속성입니다. (Flyway Teams only)키-값 쌍 (예: flyway.jdbcProperties.myProperty=value1, flyway.jdbcProperties.myOtherProperty=value2)없음
flyway.oracle.sqlplusFlyway의 Oracle SQL*Plus 명령 지원을 활성화할지 여부를 설정합니다. 기본값은 false입니다. (Flyway Teams only)true, falsefalse
flyway.oracle.sqlplusWarnFlyway가 지원하지 않는 Oracle SQL*Plus 문을 만났을 때 경고 대신 오류를 발생시킬지 여부를 설정합니다. 기본값은 false입니다. (Flyway Teams only)true, falsefalse
flyway.kerberosConfigFileKerberos 서비스를 통해 인증할 때 사용할 Kerberos 구성 파일의 경로를 설정합니다. (Flyway Teams only)파일 경로 (예: /etc/krb5.conf)없음
flyway.check.buildUrl빌드 데이터베이스의 URL입니다. 이 데이터베이스는 타겟 데이터베이스에 영향을 주기 전에 보고서를 생성하기 위해 사용됩니다. 기본값은 비어 있습니다. (Flyway Enterprise only)JDBC URL (예: jdbc:postgresql://localhost:5432/builddb)없음
flyway.check.buildUser빌드 데이터베이스의 사용자 이름입니다. 기본값은 flyway.user입니다. (Flyway Enterprise only)사용자 이름 (예: builduser)flyway.user
flyway.check.buildPassword빌드 데이터베이스의 비밀번호입니다. 기본값은 flyway.password입니다. (Flyway Enterprise only)비밀번호flyway.password
flyway.check.outputLocation보고서의 대상 폴더입니다. 보고서 파일 이름은 check-report-yyyy-mm-dd_HH-MM-ss 형식입니다. 기본값은 현재 디렉토리입니다. (Flyway Enterprise only)디렉토리 경로 (예: filesystem:/path/to/reports)현재 디렉토리
flyway.check.outputTypes보고서의 출력 형식입니다. 옵션은 json (기계 읽기 가능)과 html (인간 읽기 가능)입니다. 기본값은 html,json입니다. (Flyway Enterprise only)json, htmlhtml,json
flyway.licenseKeyFlyway 라이선스 키입니다 (예: FL01...). Flyway Teams Edition을 아직 사용하지 않는 경우 Flyway 다운로드 페이지에서 30일 무료 체험 라이선스 키를 요청할 수 있습니다. (Flyway Teams only)라이선스 키 문자열 (예: FL0123456789ABCDEF)없음
flyway.clean-on-validation-error스키마 검증 실패 시 clean을 자동으로 실행할지 여부를 설정합니다. 개발 환경에서만 사용을 권장하며, 프로덕션에서는 false로 설정해야 합니다.true, falsefalse
flyway.clean-allow-missing-migrationsclean 명령어 실행 시 누락된 마이그레이션을 허용할지 여부를 설정합니다.true, falsefalse
flyway.clean-allow-out-of-orderclean 명령어 실행 시 순서가 어긋난 마이그레이션을 허용할지 여부를 설정합니다.true, falsefalse
flyway.repeatable-scripts반복 가능한 마이그레이션 스크립트의 위치를 지정합니다.classpath:db/migration, classpath:db/migration/repeatableclasspath:db/migration
flyway.repeatableSqlMigrationPrefix반복 가능한 마이그레이션 파일의 접두사를 설정합니다. 기본값은 R입니다.RR
flyway.group모든 보류 중인 마이그레이션을 동일한 트랜잭션으로 그룹화하여 적용할지 여부를 설정합니다. 기본값은 false입니다.true, falsefalse
flyway.validateOnMigrate마이그레이션을 실행할 때 자동으로 스키마 검증을 수행할지 여부를 설정합니다. 기본값은 true입니다.true, falsetrue
flyway.mixed동일한 마이그레이션 내에서 트랜잭션과 비트랜잭션 SQL 문을 혼합할 수 있을지 여부를 설정합니다. 기본값은 false입니다.true, falsefalse
flyway.skipExecutingMigrationsFlyway가 마이그레이션 내용을 실제로 실행하지 않고 스키마 히스토리 테이블만 업데이트할지 여부를 설정합니다. 기본값은 false입니다. (Flyway Teams only)true, falsefalse
flyway.installedBy마이그레이션을 적용한 사용자 이름을 스키마 히스토리 테이블에 기록합니다. 기본값은 비어 있으며, 데이터베이스 연결의 현재 사용자가 사용됩니다.사용자 이름 (예: myuser)비어 있음 (현재 데이터베이스 사용자)
flyway.errorOverrides특정 SQL 상태 및 오류 코드를 재정의하여 특정 오류 또는 경고를 디버그 메시지, 정보 메시지, 경고 또는 오류로 처리할지 여부를 설정합니다. (Flyway Teams only)패턴 목록 (예: 99999:17110:E, S0001:0:I-, *:123:W)없음
flyway.dryRunOutput마이그레이션 드라이 런의 SQL 문을 출력할 파일의 경로를 설정합니다. 기본값은 비어 있습니다. (Flyway Teams only)파일 경로 (예: filesystem:/path/to/output.sql, classpath:flyway-dry-run.sql)비어 있음
flyway.lockRetryCount마이그레이션을 위해 잠금을 시도할 때 시도할 횟수입니다. 기본값은 50입니다. -1로 설정하면 무한히 시도합니다.정수 값 (예: 50, -1)50
flyway.jdbcProperties.<name>데이터베이스 연결 시 JDBC 드라이버에 전달할 속성입니다. (Flyway Teams only)키-값 쌍 (예: flyway.jdbcProperties.myProperty=value1, flyway.jdbcProperties.myOtherProperty=value2)없음
flyway.oracle.sqlplusFlyway의 Oracle SQL*Plus 명령 지원을 활성화할지 여부를 설정합니다. 기본값은 false입니다. (Flyway Teams only)true, falsefalse
flyway.oracle.sqlplusWarnFlyway가 지원하지 않는 Oracle SQL*Plus 문을 만났을 때 경고 대신 오류를 발생시킬지 여부를 설정합니다. 기본값은 false입니다. (Flyway Teams only)true, falsefalse
flyway.kerberosConfigFileKerberos 서비스를 통해 인증할 때 사용할 Kerberos 구성 파일의 경로를 설정합니다. (Flyway Teams only)파일 경로 (예: /etc/krb5.conf)없음
flyway.check.buildUrl빌드 데이터베이스의 URL입니다. 이 데이터베이스는 타겟 데이터베이스에 영향을 주기 전에 보고서를 생성하기 위해 사용됩니다. 기본값은 비어 있습니다. (Flyway Enterprise only)JDBC URL (예: jdbc:postgresql://localhost:5432/builddb)없음
flyway.check.buildUser빌드 데이터베이스의 사용자 이름입니다. 기본값은 flyway.user입니다. (Flyway Enterprise only)사용자 이름 (예: builduser)flyway.user
flyway.check.buildPassword빌드 데이터베이스의 비밀번호입니다. 기본값은 flyway.password입니다. (Flyway Enterprise only)비밀번호flyway.password
flyway.check.outputLocation보고서의 대상 폴더입니다. 보고서 파일 이름은 check-report-yyyy-mm-dd_HH-MM-ss 형식입니다. 기본값은 현재 디렉토리입니다. (Flyway Enterprise only)디렉토리 경로 (예: filesystem:/path/to/reports)현재 디렉토리
flyway.check.outputTypes보고서의 출력 형식입니다. 옵션은 json (기계 읽기 가능)과 html (인간 읽기 가능)입니다. 기본값은 html,json입니다. (Flyway Enterprise only)json, htmlhtml,json
flyway.licenseKeyFlyway 라이선스 키입니다 (예: FL01...). Flyway Teams Edition을 아직 사용하지 않는 경우 Flyway 다운로드 페이지에서 30일 무료 체험 라이선스 키를 요청할 수 있습니다. (Flyway Teams only)라이선스 키 문자열 (예: FL0123456789ABCDEF)없음
flyway.clean-on-validation-error스키마 검증 실패 시 clean을 자동으로 실행할지 여부를 설정합니다. 개발 환경에서만 사용을 권장하며, 프로덕션에서는 false로 설정해야 합니다.true, falsefalse
flyway.clean-allow-missing-migrationsclean 명령어 실행 시 누락된 마이그레이션을 허용할지 여부를 설정합니다.true, falsefalse
flyway.clean-allow-out-of-orderclean 명령어 실행 시 순서가 어긋난 마이그레이션을 허용할지 여부를 설정합니다.true, falsefalse

Reference

https://www.baeldung.com/spring-r2dbc-flyway

This post is licensed under CC BY 4.0 by the author.