반응형
플라이웨이를 실행하는 방법: SpringBoot 앱에서 마이그레이션 전 청소?
저는 스프링부트와 플라이웨이를 사용하고 있습니다.마이그레이션은 잘 작동하지만, 저는 작업을 수행할 수 있기를 원했습니다.clean
응용 프로그램 컨텍스트가 로드될 때 flyway 명령test
옆모습
SpringBoot을 구성하여 다음 작업을 수행할 수 있습니까?clean
그리고 나서.migrate
활성 프로파일이 다음과 같은 경우test
?
다음과 같이 Flyway 자동 구성을 덮어쓸 수 있습니다.
@Bean
@Profile("test")
public Flyway flyway(DataSource theDataSource) {
Flyway flyway = new Flyway();
flyway.setDataSource(theDataSource);
flyway.setLocations("classpath:db/migration");
flyway.clean();
flyway.migrate();
return flyway;
}
Spring Boot 1.3(현재 버전은 1.3.0.M1, GA 릴리스는 9월 예정)에서 Flyway Migration Strategy 빈을 사용하여 실행할 작업을 정의할 수 있습니다.
@Bean
@Profile("test")
public FlywayMigrationStrategy cleanMigrateStrategy() {
FlywayMigrationStrategy strategy = new FlywayMigrationStrategy() {
@Override
public void migrate(Flyway flyway) {
flyway.clean();
flyway.migrate();
}
};
return strategy;
}
스프링 부트의 최신 버전(예: 2.0.2)에서는 속성을 사용할 수 있습니다.spring.flyway.clean-on-validation-error
sql 파일 변경으로 인해 clean을 사용하려는 경우
@dunni와 동일한 답변(참, 감사합니다!), 그러나 최신 Java 8+로 업데이트되었습니다.
@Profile("test")
@Bean
public FlywayMigrationStrategy flywayCleanMigrationStrategy() {
return flyway -> {
flyway.clean();
flyway.migrate();
};
}
그리고 필요하다면 코틀린 버전이 있습니다 :)
@Profile("test")
@Configuration
class FlywayMigrationConfig {
@Bean
fun flywayCleanMigrationStrategy() = FlywayMigrationStrategy {
it.clean()
it.migrate()
}
}
언급URL : https://stackoverflow.com/questions/30830441/how-to-run-flywayclean-before-migrations-in-a-springboot-app
반응형
'programing' 카테고리의 다른 글
새로운 문자열을 만들지 않고 루비에서 문자열을 트리밍하는 표준 방법은 무엇입니까? (0) | 2023.07.02 |
---|---|
AsQueryable 메서드를 MongoDb C# Driver 2.1과 비동기적으로 사용하려면 어떻게 해야 합니까? (0) | 2023.07.02 |
R과 병합된 Excel 셀을 읽는 방법 (0) | 2023.06.27 |
ORA-00988: 암호가 없거나 잘못되었습니다. (0) | 2023.06.27 |
보낸 사람 ID에 대한 FCM 토큰을 검색하기 전에 APNS 장치 토큰이 설정되지 않음 - 기본 Firebase 응답 (0) | 2023.06.27 |