【问题标题】:previewing the SQL Statements before migration using Flyway使用 Flyway 迁移前预览 SQL 语句
【发布时间】:2013-03-05 01:05:15
【问题描述】:

我是 Flyway 的新手,我正在使用 Flyway 2.1 代码库在使用 Flyway 的先前架构版本上迁移和执行 SQL 语句。一旦我执行我较新的 SQL 语句,元数据表中的版本条目就会增加。

但在我迁移新版本的架构之前(即在我迁移/在数据库架构上执行较新的 SQL 语句之前),我想在另一个 preview.sql 文件中捕获所有新 SQL,以便 DBA可以在 SQL 继续迁移之前看到它们。

我计划通过在 Flyway.java 文件中添加一个 flyway.preview() 方法来做到这一点。您能否告诉我需要更改哪些其他文件才能完成此操作?

另外,我只想在新版本 > 数据库中当前架构版本的情况下执行此操作。我检查了 2.1 代码,但 SchemaVersion 类在 2.1 中已被弃用,我不确定如何从数据库中获取当前版本。

感谢您的帮助或任何可以纠正我的方法的建议。

谢谢

【问题讨论】:

  • 您正在做的事情可能与以下内容有重叠:github.com/flyway/flyway/issues/87 - 也许一旦您构建了解决方案,您就可以通过拉取请求提交它?

标签: flyway


【解决方案1】:

还没有必要的抽象来支持这一点,但我计划在接下来的几周内添加它们以支持 2.2 中的批量更新。完成后,实现起来应该会容易得多。

至于查询数据库的状态,你有 Flyway.info() 来帮助你。

【讨论】:

  • 您好阿克塞尔,感谢您的回复。根据您对我的帖子的回复,是否会有 info 行中的预览命令?意思是,如果我进行 flyway.cmd 预览,会输出将要应用的 SQL 列表吗?由于我目前正在尝试实现该功能,我很想知道。谢谢
  • 不,我会以可以切换执行者的方式实现它。执行到 jdbc 或 stdout 或类似的东西。
  • 嗨,Alex,我想将控制台上正在打印的同一个 ascii 表打印到相同格式的文本文件中。无论如何,该表是否可以导出?谢谢
  • 它是私有 API 的一部分(可以随时更改,使用风险自负)。查看命令行工具的来源。
  • 这是怎么回事?我目前正在考虑引入 Flyway,并且能够预览/导出迁移(用于我们无法立即使用 flyway 的环境)将非常有用。
猜你喜欢
  • 2012-05-17
  • 2011-11-05
  • 2018-10-28
  • 2017-03-23
  • 2012-07-27
  • 2012-08-06
  • 2015-01-02
  • 1970-01-01
  • 2017-01-07
相关资源
最近更新 更多