问题标签 [flyway]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
52013 浏览

java - 如何使用 Flyway 回滚迁移?

MyBatis 迁移将每个 SQL 文件分成两部分:

  1. 一个用于向前迁移一个版本
  2. 一个用于迁移回一个版本

如何使用Flyway回滚版本?

0 投票
1 回答
921 浏览

postgresql - Flyway:支持旧数据库

我目前正在尝试为我们的数据库设置一些简单的迁移脚本。我正在检查flyway,这似乎很简单,足以满足我的需要。我的问题是,对于 Postgres,仅支持版本 9(我们使用的是 8.4)。是否有可能以某种方式解决/修复此限制,或者我应该开始寻找其他选项?

编辑:我忘了提到当我运行类似mvn flyway:status的东西时,我收到错误消息:

我可以通过 连接到数据库psql,并且我使用的是正确的 jdbc 驱动程序,因此当我在文档中看到需求页面时,我认为版本已由flyway明确检查。

0 投票
1 回答
830 浏览

database - Flyway:如何支持清理具有相同生命周期的多个模式?

使用具有相同生命周期的多个模式的 Flyway 进行数据库迁移,当我使用 flyway:clean 时,如何实现它们都变得干净?

0 投票
4 回答
3691 浏览

maven-2 - 链接 Maven Flyway 命令

如何使用 Maven 将 Flyway 命令链接到单个命令中?

例如,我想运行mvn initialize flyway:clean后跟mvn initialize compile flyway:migrate. 然而,mvn initialize flyway:clean compile flyway:migrate失败。

谢谢!

0 投票
1 回答
1470 浏览

java - 耳部部署期间的飞路迁移

如果 Flyway 可以在部署.ear工件(JBoss 4.2)期间迁移我们的数据库,我们会很高兴。如果出现任何问题,它应该中止。

Flyway 可以mvn flyway:migrate工作,但对于持续集成和生产环境(可能还有其他下载新 SNAPSHOTS 的环境),将数据库迁移与应用程序捆绑在一起会很棒。

0 投票
2 回答
2704 浏览

java - 使 Flyway 静音——一个 log4j 问题

我已经为我称为Nomad的Flyway编写了一个包装器。我对 Flyway 很满意,省去了它在 Maven 之外执行的不间断日志记录。我在这里创建了一个问题。Nomad 的每个用户都必须自己配置 log4j 以使 Flyway 静音。如果不这样做,例如在规范测试期间,这是有问题的。然而,让配置恰到好处是一个挑战,而且,必须这样做会破坏我的库的抽象。

我的问题是:我怎样才能永久地使飞行路线保持沉默,以便 Nomad 的任何用户都不会承担任务?我发现这log4j.xml 有时有效:

这扼杀了 Flyway 的帮助,而不是过于健谈。误导仍然被打破,但不经常。

0 投票
2 回答
5585 浏览

migration - Flyway - 删除数据库,创建数据库

我有 2 个文件:db 结构和 db 数据 sql 文件。(我们尚未参与创建变更文件的项目)。

如果它们中的任何一个使用 maven 进行了更改,有没有办法在每次构建之前运行这些文件?

我唯一的想法是在每次更改文件后重命名文件(提升版本),以确保 flyaway 将其拾取。

有没有更聪明的方法,也许是使用 API 或其他一些“技巧”?

谢谢

--MB

0 投票
1 回答
901 浏览

database - 使用 Flyway 提供热修复

让我们考虑一下处理热修复的最佳策略是什么?Flyway 常见问题解答部分的问题。在这个问题中:

  1. 应用程序版本 7(和数据库版本 7)在生产中部署
  2. 应用程序版本 8 开始工作
  3. DB版本8在验收测试环境中开发部署
  4. 在生产中发现错误
  5. DB 7.1 版已开发,必须经过验收测试

当针对验收测试环境调用 flyway:migrate 时,它​​会注意到 v8 已经执行,因此无需执行 v7.1。

一方面这是有道理的,因为 v7.1 可能与 v8 不兼容,而且 Flyway 无法对此进行分析。快速失败是完全可以理解的。

另一方面,将 v7.1 部署到验收测试环境的唯一方法是清理数据库并运行 flyway:migrate with target = v7.1,从而丢弃可能已经使用的数据。

是否有一个我不知道的功能可以处理这种情况,还是 clean + migrate.target=v7.1 是唯一的选择?

0 投票
3 回答
1596 浏览

flyway - Flyway 输出到 SQL 文件

是否可以将 db 迁移输出到 SQL 文件,而不是直接在 flyway 中调用数据库更改?

0 投票
1 回答
1120 浏览

java - flyway 命令行工具 - 重新执行失败的 DDL 的选项是什么?

我使用创建表 DDL 成功运行了 v1 迁移。我将其复制到 v2 文件并运行 - 得到了预期的验证错误消息:

迁移到 1.0.002 版 com.googlecode.flyway.core.exception.FlywayException:在第 1 行执行语句时出错:create table people(id number(10) primary key, name varchar2(301)) 由 java.sql.SQLSyntaxErrorException 引起: ORA-00955: 名称已被 n 个现有对象使用 MigrationException: 迁移到版本 1.0.002 失败!请恢复备份并回滚数据库和代码

我更正了 v2 文件并再次运行 flyway migrate。返回错误信息

当前架构版本:1.0.002 MigrationException:迁移到版本 1.0.002 失败!请恢复备份并回滚数据库和代码

我不是在进行数据库备份的阶段 - 简单地尝试执行固定的 DDL。我目前没有看到缺少 flyway clean 的解决方案。为什么 flyway 不能再次尝试执行 FAILED 版本(如果校验和已更改)?或者不应该有一个飞行回滚命令?

我知道我可以很好地修改代码以使其成为这种方式,但是您有什么理由选择它以这种方式运行吗?