我们目前正在为我们的数据库CI使用VincentVega (现在已经引入了Tarantino)。我们在web应用中使用CruiseControl.Net (使用TFS的C#)。
VincentVega运行得相对较好,因为它非常明确,可以很好地处理创建和更新这两个场景(同时保留现有数据)。我正在考虑升级到Tarantino,但我想知道是否有人可以提出一些我应该考虑的替代方案?不幸的是,像SQL这样的工具比较“自动”生成增量脚本是不可能的,因为我们的数据库是高度规范化的,有超过500个表。
谢谢
埃里克·塔拉索夫
发布于 2011-07-20 06:39:17
罗布·雷诺兹还有另一个值得关注的项目:RoundHousE
http://code.google.com/p/roundhouse/
发布于 2012-07-24 10:19:52
Paul Stovell和他的朋友们也有一个类似的工具,叫做DbUp。
Tarantino和DbUp之间一个值得注意的区别是,Tarantino通常是从构建脚本(如Nant或msbuild)调用的,而DbUp具有您在应用程序中使用的.NET类。这可能允许在脚本未按计划进行的情况下进行更好的后备处理。
http://code.google.com/p/dbup/
这里是Paul Stovell的博客DbUp的原始公告:http://www.paulstovell.com/dbup
发布于 2016-07-07 04:06:37
我认为发布另一个答案可能会有兴趣,因为Redgate现在有一个新的产品,ReadyRoll,可以满足您的关键问题。
是的,差异工具有时会使脚本出错。通常不是脚本不起作用,而是它没有以所需的方式应用更改。ReadyRoll的两全其美的方法使用SQL Compare在幕后创建每个迁移脚本,但至关重要的是,它允许开发人员在之后定制脚本。
像RoundHousE一样,ReadyRoll的方法是基于迁移,通过运行一系列连续的脚本来管理升级过程。这个工具是在认识到许多开发团队更喜欢以这种方式工作的情况下构建的。
在这一点上我不得不承认失败。
https://stackoverflow.com/questions/5367209
复制相似问题