使用 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 Migrate [SQL] - 处理对象依赖关系