问题标签 [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.
postgresql - Flyway:支持旧数据库
我目前正在尝试为我们的数据库设置一些简单的迁移脚本。我正在检查flyway,这似乎很简单,足以满足我的需要。我的问题是,对于 Postgres,仅支持版本 9(我们使用的是 8.4)。是否有可能以某种方式解决/修复此限制,或者我应该开始寻找其他选项?
编辑:我忘了提到当我运行类似mvn flyway:status
的东西时,我收到错误消息:
我可以通过 连接到数据库psql
,并且我使用的是正确的 jdbc 驱动程序,因此当我在文档中看到需求页面时,我认为版本已由flyway明确检查。
database - Flyway:如何支持清理具有相同生命周期的多个模式?
使用具有相同生命周期的多个模式的 Flyway 进行数据库迁移,当我使用 flyway:clean 时,如何实现它们都变得干净?
maven-2 - 链接 Maven Flyway 命令
如何使用 Maven 将 Flyway 命令链接到单个命令中?
例如,我想运行mvn initialize flyway:clean
后跟mvn initialize compile flyway:migrate
. 然而,mvn initialize flyway:clean compile flyway:migrate
失败。
谢谢!
java - 耳部部署期间的飞路迁移
如果 Flyway 可以在部署.ear
工件(JBoss 4.2)期间迁移我们的数据库,我们会很高兴。如果出现任何问题,它应该中止。
Flyway 可以mvn flyway:migrate
工作,但对于持续集成和生产环境(可能还有其他下载新 SNAPSHOTS 的环境),将数据库迁移与应用程序捆绑在一起会很棒。
migration - Flyway - 删除数据库,创建数据库
我有 2 个文件:db 结构和 db 数据 sql 文件。(我们尚未参与创建变更文件的项目)。
如果它们中的任何一个使用 maven 进行了更改,有没有办法在每次构建之前运行这些文件?
我唯一的想法是在每次更改文件后重命名文件(提升版本),以确保 flyaway 将其拾取。
有没有更聪明的方法,也许是使用 API 或其他一些“技巧”?
谢谢
--MB
database - 使用 Flyway 提供热修复
让我们考虑一下处理热修复的最佳策略是什么?Flyway 常见问题解答部分的问题。在这个问题中:
- 应用程序版本 7(和数据库版本 7)在生产中部署
- 应用程序版本 8 开始工作
- DB版本8在验收测试环境中开发部署
- 在生产中发现错误
- 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 是唯一的选择?
flyway - Flyway 输出到 SQL 文件
是否可以将 db 迁移输出到 SQL 文件,而不是直接在 flyway 中调用数据库更改?
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 版本(如果校验和已更改)?或者不应该有一个飞行回滚命令?
我知道我可以很好地修改代码以使其成为这种方式,但是您有什么理由选择它以这种方式运行吗?