即使引发 SQLException,flywaydb 也会应用 java 迁移
Posted
技术标签:
【中文标题】即使引发 SQLException,flywaydb 也会应用 java 迁移【英文标题】:flywaydb applies java migrations even when SQLException is raised 【发布时间】: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 迁移一起使用?
【问题讨论】:
【参考方案1】:您的代码捕获了异常并继续执行,因此 Flyway 不知道有什么问题。
最好重新扔
catch(SQLException e)
throw new RuntimeException(e);
【讨论】:
以上是关于即使引发 SQLException,flywaydb 也会应用 java 迁移的主要内容,如果未能解决你的问题,请参考以下文章
java.Sql.SQLException,无法加载类 net.ucanaccess.jdbc.UcanaccessDriver