我正在使用 FM 来部署数据库。作为该部署的一部分,我正在推出一个视图。变化是这样的:
R1:创建视图
R2:视图没有变化
R3:向视图添加一列
R4:没有变化
R5:从视图中删除列
该视图由源代码管理中的脚本创建。假设我部署了 R3,然后决定回滚到 R2(我正在考虑一个我不想让其处于奇怪状态的生产站点)。所以视图的脚本(drop/create)在本地文件中。我无法再次使用该脚本,因为本地版本位于 R3,但我希望它返回到 R1(或 R2)。
如何使用 FluentMigrator 可靠地将视图回滚到以前的版本?我能想到的唯一选择是将视图创建脚本保存在我的迁移类中的字符串中。但似乎我需要在我的课堂上将它的每个版本都放在一个字符串中——非常笨拙并且对团队来说很难推销。
我能想到的每一个现实的解决方案都与源代码控制的想法背道而驰——在本地拥有一个事物的单一版本并随着时间的推移跟踪它的变化。