programing

특정 스프링 프로필에서 플라이웨이를 비활성화하려면 어떻게 해야 합니까?

muds 2023. 3. 22. 22:14
반응형

특정 스프링 프로필에서 플라이웨이를 비활성화하려면 어떻게 해야 합니까?

현재 MsSQL 서버를 사용하는 스프링 부트 앱이 있습니다.또한 이행을 위해 플라이웨이를 사용합니다.

테스트용 프로파일을 추가하고 싶습니다.플라이웨이를 사용하는 대신 엔티티 클래스에서 테이블을 생성하려고 합니다.

어플리케이션에서 이렇게 쓰려고 했어요.yaml

spring:
  profiles: test
  jpa:
      generate-ddl: true
      hibernate:
  datasource:
    url: jdbc:h2:mem:test_db;MODE=MSSQLServer
    username: sa
    password:

그래도 플라이웨이는 시작이야

참고로 Spring Boot 2.0의 속성명이 변경되었습니다.

위해서application.properties형식:

spring.flyway.enabled=false

위해서application.yml형식:

spring:
    flyway:
        enabled: false

업데이트: 특정 프로필에서 플라이웨이를 비활성화하려면 해당 프로필에 고유한 속성 파일에 해당 속성을 넣을 수 있습니다.예를 들어, 프로파일이 "abc"라고 불리는 경우 프로파일이 "abc에 삽입할 수 있습니다.application-abc.properties파일 이름 지정 방법에 대한 자세한 내용은 프로파일 고유의 속성에 대한 Spring 문서를 참조하십시오.일반적으로 형식은application-{profileName}.properties.

Spring Boot 2.X 용은 아닙니다!정답은 여기 있습니다.

Spring Boot 1.X에 대한 답변이 필요한 경우 계속 읽어보십시오.

필요에 따라 스프링 부트에서 플라이웨이를 비활성화할 수 있는 속성이 있습니다.flyway.enabled디폴트로는 해당됩니다.

프로파일 고유의 설정을 지정할 수 있습니다.이 경우, 다음과 같이 이름을 붙여야 합니다.application-test.yml이 설정에서는 프로파일이 활성화 되어 있는 경우 플라이웨이를 무효로 할 수 있습니다.다음과 같이 선언하면 됩니다.

flyway:
  enabled: false

또한 공통 구성에서 테스트 프로파일을 지정할 경우 테스트 프로파일을 루트에 추가합니다.

JIC 공식 매뉴얼 with current spring boot 2.x : 데이터 이행 속성태그 #FLYWAY를 참조하면 도움이 되는 많은 속성을 찾을 수 있습니다.

spring.flyway.enabled=false # Whether to enable flyway.

예를 들어 여러 프로파일이 있습니다.

  1. application-integration.yml
  2. application.yml

application.yml의 경우

spring:
  profiles:
    active: ${ENVIRONMENT_NAME:local}
  flyway:
    enabled: true
    user: ${ORACLE_DB_USER:#{null}}
    password: ${ORACLE_DB_PASS:#{null}}
    locations: classpath:db/migration
    url: ${DB_URL:#{null}}
    driver-class-name: oracle.jdbc.OracleDriver
    #    skipExecutingMigrations: true
    tablespace: MY_TABLESPACE_NAME
    baselineOnMigrate: true
    schemas: MY_SCHEMA_NAME

application-integration.yml에 포함되어 있습니다.

spring:
  flyway:
    enabled: false

실행 중에는 플라이웨이 이행을 무효로 하지 않습니다.Spring Boot 2.3.4를 사용하고 있다.

의 예를 다음에 나타냅니다.application.yaml2개의 프로파일을 정의합니다.
1. enable_flyway_profile- 플라이웨이를 활성화합니다.
2. disable_flyway_profile- 플라이웨이를 비활성화합니다.

spring:
  profiles:
    active: "enable_flyway_profile"
  flyway:
    enable: true
  ....

---

spring:
  profiles:
    active: "disable_flyway_profile"
  flyway:
    enable: false
  ....

언급URL : https://stackoverflow.com/questions/44287821/how-to-disable-flyway-in-a-particular-spring-profile

반응형