使用 Flyway 迁移存储过程

Posted

技术标签:

【中文标题】使用 Flyway 迁移存储过程【英文标题】:Migrating Stored Procedures with Flyway 【发布时间】:2013-03-27 05:48:50 【问题描述】:

应该如何使用像 Flyway 这样的数据库迁移工具来管理像存储过程这样的过程数据库代码?

与 DDL 不同,我不希望看到对存储在多个数据库迁移文件中的存储过程的更改。如何在源代码控制下在单个文件中管理程序代码,同时利用 Flyway 之类的工具进行数据库迁移?

【问题讨论】:

我创建了一个非常相似的question,因为它已有 18 个月的历史,并且已经发布了一个主要版本。 【参考方案1】:

框架中没有特殊的构造来处理这个问题。主要是因为我还没有找到让我满意的方法。

更新: 现在从 Flyway 4.0 开始完全支持可重复脚本。见https://flywaydb.org/documentation/migrations#repeatable-migrations

【讨论】:

考虑到 3.0 版本,是否更接近建议的方法?我已经重新问过这个问题here.【参考方案2】:

我们做的是:

    每当存储过程发生变化时,都有一个完整的 CREATE OR REPLACE Flyway 脚本。 将每个存储过程存储在源代码管理的单独区域中,以便跟踪更改并计算差异。

不是一个很好的解决方案,而且每次都很难记住,但它克服了该工具的一些限制。

【讨论】:

以上是关于使用 Flyway 迁移存储过程的主要内容,如果未能解决你的问题,请参考以下文章

Flyway 的迁移前和迁移后脚本

Flyway Migrate [SQL] - 处理对象依赖关系

使用 Flyway 迁移创建用户

如何将 SQL Server 存储过程迁移到 Mysql [关闭]

实战Flyway迁移指南最佳实践

db2 存储过程迁移方法