私はflyway + hibernate validateを使用します。hibernate検証前にフライウェイの移行を開始するにはどうすればよいですか?
@Component
public class DbMigration {
private static final Logger LOG = LoggerFactory.getLogger(DbMigration.class);
private final Config config;
@Autowired
public DbMigration(Config config) {
this.config = config;
}
public void runMigration() {
try {
Flyway flyway = new Flyway();
flyway.configure(properties());
int migrationApplied = flyway.migrate();
LOG.info("[" + migrationApplied + "] migrations are applied");
} catch (FlywayException ex) {
throw new DatabaseException("Exception during database migrations: ", ex);
}
}
public Properties properties() {
//my prop
}
}
そしてApllicationクラスで、私はそれを行う:
runMigration();
前
public static void main(String[] args) {
try {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfiguration.class);
context.getBean(DbMigration.class).runMigration();
しかし、私の休止状態STARTとスローexeptionを検証し、私はフライウェイBeanを持っています。どうすれば次に始めることができますか?
- 実行移行
- 開始検証
EDIT休止状態:
@Bean
@Autowired
public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource datasource) {
log.info("entityManagerFactory start");
dbMigration.runMigration();
をしかし、私はあなたが実体を持っている場合、それは、あなたの春のアプリケーション構成では
あなたは '春-boot'を使用していますか?その場合、フライウェイ移行のためのコンポーネントを定義する必要はありません。あなたがデフォルトのオプションをオーバーライドして、私が私の答えで説明したように、hibernateがBeanの設定を追加する前にそれを実行させたいなら。 spring-bootに移行を実行するよう指示する必要はありません。自動的に実行します。 – Mustafa