假设我们正在开发一个特性,并且我们需要一个新的表。太棒了,我们进入Flyway,然后我们就可以开始运行了!然后,在一些测试后的几天后,我们意识到等待,这个列真的应该是废话,或者我们需要一个我们没有预料到的字段来缓存一些性能值,或者出于某种原因,我们的象牙塔版本的数据模型与现实不符。
简单的解决方案是创建另一个Flyway条目。但由于这从未离开过开发,这似乎是一个糟糕的决定。它真的应该在最初的构建中。但要做到这一点,我必须重置我的数据库,这对于如此简单的事情来说是一种很大的时间浪费。
我应该如何日复一日地处理这件事,以保护我的理智和时间?
发布于 2021-09-14 11:08:17
作为对Julia答案的补充,问题中有趣的短语是“但由于这从来没有离开过开发,这似乎是一个糟糕的决定”。这是一个很好的观点:您的场景是您所做的更改测试失败,因此不应该出现在主要的迁移“叙述”中。如果您可以采用分支/合并策略,仅当您的分支上的单元和集成测试完成时才将迁移添加到“开发”分支,那么您就可以避免这种情况。
我将在这里更详细地介绍这一点,Branching and Merging in Database Development using Flyway。只要您可以为将数据库的分支版本构建到确切版本(分支点的版本)的分支创建初始迁移文件,Flyway就可以非常容易地管理这一点。如果在数据库的同一部分或依赖的数据库对象上存在并发开发,合并过程可能会很棘手,但对于数据库开发通常是这样的。
https://stackoverflow.com/questions/69166919
复制相似问题