【问题标题】:flywaydb applies java migrations even when SQLException is raised即使引发 SQLException,flywaydb 也会应用 java 迁移
【发布时间】:2015-09-03 19:15:33
【问题描述】:

我想使用 flywaydb 来对我的数据库进行版本控制并管理数据库架构和数据迁移。我想使用 java 迁移和 java api,因为我认为将它集成到我的应用程序中更容易。问题是,当我应用迁移时,虽然我的 sql 准备语句出现语法错误并引发 SQLException,但 flywaydb (schema_version) 的元数据表包含我的迁移已应用的记录。有没有办法改变这种行为?我的java迁移类实现了JdbcMigration

public class V1_2__Change_commnets_to_int implements JdbcMigration {
    @Override
    public void migrate(Connection con){
        PreparedStatement stm = con.prepareStatement("Query with syntax error");
        try{
            stm.execute();
        }catch(SQLException e){
            e.printStackTrace();
        }finally{
            stm.close();
        }
    }
}

您能否提供一个示例,说明如何在 flywaydb 中将校验和与 java 迁移一起使用?

【问题讨论】:

    标签: java hibernate jpa flyway


    【解决方案1】:

    您的代码捕获了异常并继续执行,因此 Flyway 不知道有什么问题。

    最好重新扔

    catch(SQLException e){
        throw new RuntimeException(e);
    }
    

    【讨论】:

      猜你喜欢
      • 2018-03-15
      • 2013-03-12
      • 2015-01-05
      • 1970-01-01
      • 1970-01-01
      • 2016-11-09
      • 2016-02-27
      • 2020-10-13
      • 2017-06-12
      相关资源
      最近更新 更多