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

flyway-告诉flyway修复迁移表,但保留失败部署的历史记录

颛孙哲
2023-03-14

我希望能够在部署失败后部署到我的数据库,因为在我的情况下,我正在处理并发和独立的部署。flyway clean命令有助于删除迁移表中失败的迁移。使用该命令有助于我将来执行部署,但缺点是我会丢失失败部署的历史记录。

有没有办法告诉flyway修复迁移表并保留失败部署的历史记录-例如将成功标志设为“2”。

在我的情况下,所有部署都是独立的,所以我们在部署时创建唯一的迁移号-这允许我们重新部署任何东西,而不考虑flyway的状态(我们只使用flyway提供的自动化机制,并禁用了其他“迁移”保护措施)。

共有1个答案

艾令秋
2023-03-14

本机不支持这一点。我同意删除失败迁移的历史记录作为一个选项会很方便。

使用回调可能会给您一个解决方法。具体来说,您可以在“修复前”回调中获取失败迁移的副本。如果使用 SQL 文件,请在重新修之前创建.sql(或迁移后缀的任何内容)。

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

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

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

  • 我们面临一个问题:假设一个开发人员在处理分支a的过程中提供了一个新的迁移版本,比如说V331,同时一个QA人员在另一个分支B的QA环境中进行QA。可能会出现qa环境已经有v331版本的情况,因为几个开发人员可能会在不同的时间在不同的分支上创建相同的版本号……更多的是qa经常在分支之间切换,这就是qa数据库变得混乱的原因,特别是表schema_version,这导致我们手动删除损坏的模式版本,解决旧

  • 我正在使用flyway数据库迁移工具和一个spring boot jpa项目。当我第一次运行服务器时,flyway希望迁移SQL,但表还没有创建。在这种情况下,flyway返回一个错误,该错误类似 spring.flyway.baseline-on-migrate=true spring.flyway.enabled=true spring.flyway.clean-on-validation-e

  • 我有一个flyway项目,在对数据库运行迁移之前,我想运行一个java回调来更改某些sql文件的名称。不幸的是,迁移首先针对数据库运行,然后调用回调来更改文件名。 这是我的回调类: 但是在< code>schema_version表中,我看到以下条目: 它应该说 如何让flyway在运行迁移之前更改文件名? 编辑1:所以看起来flyway正在运行迁移,然后执行回调以更改文件名,然后再次运行迁移,因