当前位置: 首页 > 知识库问答 >
问题:

如果flyway迁移失败,alter语句是否会回滚?

奚飞星
2023-03-14

出身背景

我正在使用命令行界面对DB2运行flyway迁移。我做了很多测试,一切都很好。我添加了一些命令以导致失败。

问题

有人能确认如果迁移失败并且数据库支持DDL,是否应该回滚更改表、删除表或创建表吗?当我测试它时,它看起来像是在同一个flyway脚本中失败后没有回滚更改表添加列语句。

共有1个答案

范建华
2023-03-14

好的,所以我检查了flyway网站,找到了支持的驱动程序和支持DDL的版本列表。看起来我们使用的DB2版本低于这个阈值。基于此,我猜迁移脚本的执行并未绑定在单个事务中,这就是为什么我看到在脚本失败之前应用了一些更改。

 类似资料:
  • 我已成功地将spring boot配置为使用Flyway的新项目 随Postgres数据库从版本0001.0迁移到0008.0 我已在本地手动更改脚本,但flyway迁移失败。 错误消息示例: 注意:-我不想从表flyway_schema_history中删除脚本条目。

  • 我刚刚在配置和充分理解flyway的过程中遇到了这样的情况: 我已成功配置新项目以使用Flyway。 我已成功将测试数据库从版本0迁移到1.0.3。 无法执行到版本1.0.4的迁移。(我试图添加已经存在的列,到目前为止没有问题,是我的错。) 但是,一旦我对相应的脚本进行了必要的更改以使其工作,flyway就会不断显示这样的消息: 由于我不想恢复一个完整的转储并再次应用每一次迁移,只是为了使alte

  • 我有一个飞行路线例外: 我在文档和论坛上查找,但没有找到这个异常的含义。请有人告诉我这些异常的原因是什么!谢谢

  • 我已经为工作中的应用程序创建了一个flyway项目。事实证明,在我准备好flyway设置进行测试之前,其中一个开发人员已经在测试中执行了一些SQL语句。 我的sql脚本有几个语句: 应该在语句#2上删除的列已经在我们的TEST实例上手动删除。它还没有被删除在我们的PROD实例上,我想通过迁移而不是手动进行。 显然,如果不先在测试中进行测试,我不会在PROD上运行迁移(有比这三个查询多得多的东西)。

  • 问题内容: 如何回滚失败的Rails迁移?我希望这会撤消失败的迁移,但是不,它会回滚以前的迁移(失败的迁移减去一个)。而且也不起作用。我已经遇到过几次了,这非常令人沮丧。这是我做的一个简单测试,可以重复该问题: 结果: 好的,让我们回滚一下: 嗯?那是我在SimpleTest之前的最后一次迁移,而不是失败的迁移。(哦,如果迁移输出中包含版本号,那就太好了。) 因此,让我们尝试为失败的迁移Simpl

  • 问题内容: MyBatis迁移将每个SQL文件分为两部分: 一种用于向前迁移一个版本 一种用于迁移回一个版本 如何使用Flyway回滚版本? 问题答案: 尽管Flyway支持回滚(仅作为商业功能),但不鼓励使用它: https://flywaydb.org/documentation/command/undo 尽管撤消迁移的想法很好,但不幸的是,有时它在实践中会崩溃。一旦您进行了破坏性的更改(删除