Tarantino 数据库持续集成 (CI) 的替代方案?
我们目前正在使用 VincentVega(现已纳入 Tarantino)作为我们的数据库 CI。我们将 CruiseControl.Net 用于我们的 Web 应用程序(使用 TFS 的 C#)。
VincentVega 的表现相对较好,因为它非常明确,并且同样能很好地处理创建和更新(同时保留现有数据)两种场景。我正在考虑升级到 Tarantino,但我想知道是否有人可以建议我应该考虑的一些替代方案?不幸的是,像 SQL Compare 这样“自动”生成增量脚本的工具是不可能的,因为我们的数据库是高度规范化的,有超过 500 个表。
谢谢
埃里克·塔拉索夫
We're currently using VincentVega (now rolled into Tarantino) for our database CI. We're using CruiseControl.Net for our web app (C# using TFS).
VincentVega has worked out relatively well since it's very explicity and handles the two scenarios of create and update (while preserving existing data) equally well. I'm looking into upgrading to Tarantino, but I'd like to know if anyone might suggest some alternatives I should look into? Tools like SQL Compare that "automagically" produce delta scripts are out of the question, unfortunately, since our database is highly normalized with over 500 tables.
Thanks
Eric Tarasoff
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我认为发布另一个答案可能会很有趣,因为 Redgate 现在有一个新产品 ReadyRoll,满足您的关键问题。
是的,比较工具有时会使脚本出错。通常并不是脚本不起作用,而是它没有以所需的方式应用更改。 ReadyRoll 的两全其美的方法在底层使用 SQL Compare 来创建每个迁移脚本,但最重要的是它允许开发人员随后自定义脚本。
ReadyRoll 的方法与 RoundHousE 一样,基于迁移,通过运行一系列连续的脚本来管理升级过程。该工具的构建是为了认识到许多开发团队更喜欢这种方式。
在这一点上我将不得不承认失败......
I think it might be of interest to post another answer since Redgate now has a new offering, ReadyRoll, that satisfies your key concerns.
Yes, diffing tools can sometimes get the script wrong. Often it's not that the script doesn't work, but it doesn't apply the change in the desired way. ReadyRoll's best-of-both-worlds approach uses SQL Compare under the hood to create each migration script, but crucially it allows the developer to customize the script afterwards.
ReadyRoll's approach is, like RoundHousE, migrations-based, managing the upgrade process by running a series of consecutive scripts. This tool was built in recognition that many development teams prefer working this way.
I will have to concede defeat on this point...
还有另一个项目可能值得 Rob Reynolds 关注; RoundHouse
http://code.google.com/p/roundhouse/
维基百科位于 https://github.com/chucknorris/roundhouse/wiki
There is also another project which may be worth looking at by Rob Reynolds; RoundHousE
http://code.google.com/p/roundhouse/
The wiki is at https://github.com/chucknorris/roundhouse/wiki
Paul Stovell 和朋友有一个类似的工具,称为 DbUp。
Tarantino 和 DbUp 之间的一个显着区别是,虽然 Tarantino 通常是从构建脚本(如 Nant 或 msbuild)调用的,但 DbUp 具有您在应用程序中使用的 .NET 类。如果脚本没有按计划进行,这可能会允许更好的后备处理。
http://code.google.com/p/dbup/
这是 DbUp 的原始公告来自保罗·斯托维尔的博客:
http://www.paulstovell.com/dbup
There's a similar tool by Paul Stovell and friends called DbUp.
One notable difference between Tarantino and DbUp is that while Tarantino is typically called from a build script (like Nant or msbuild), DbUp has .NET classes you use within your application. This potentially allows for better fallback handling in case a script doesn't go as planned.
http://code.google.com/p/dbup/
Here's the original announcement of DbUp from Paul Stovell's blog:
http://www.paulstovell.com/dbup