数据库项目和 TFS 如何帮助我们的开发团队?

Posted

技术标签:

【中文标题】数据库项目和 TFS 如何帮助我们的开发团队?【英文标题】:How could Database Projects and TFS help our dev team? 【发布时间】:2011-11-04 15:07:58 【问题描述】:

我刚刚开始在一个非常小的 IT 部门和一个更小的开发团队(包括我在内只有 2 个开发人员)的新公司工作。我们主要为公司开发内部网络应用程序。

现在我的背景是桌面应用程序,所以对于我以前从未开发过 ASP.Net Web 应用程序的我来说,这份工作需要一点学习曲线。目前我们不使用 TFS,但我已经提出了建议,我们将很快采用它。

我也在考虑建议我们将 SQL 数据库转移到数据库项目中,因为目前我们每晚进行备份以保护数据,但所有更新都是手动的,我们连接到数据库并执行查询等。

我不是 DBA,但在我的上一份工作中,我们正在将数据库迁移到数据库项目中,而 DBA 似乎很喜欢这个想法。这样做的好处和潜在的缺点是什么?它会帮助我们在开发完成后更新我们生活环境中的数据库吗?显然我们不想丢失任何数据,只想更新表/存储过程等。

作为一个附带问题,我对 TFS 的了解非常有限,尽管我们将使用它来处理我们的版本控制,是否可以在开发完成后使用 TFS 自动更新我们的实时网站?

对不起,如果这是一个相当广泛的问题,我正在尝试自己研究这个问题,但我想听听实际使用这些产品并做这些事情的人的意见。

谢谢

【问题讨论】:

【参考方案1】:

关于数据库项目:我和我认识的几位 dba 都有过不同的经历。我不确定他们现在应该在哪里,但这可能只是我工作方式的一个功能。部署模型......很困难,可能会导致一些意外行为。如果你去这条路线测试测试测试,以确保你完全了解正在发生的事情。

如果您只是想获得数据库的版本控制,您可以考虑 Red Gate 的SQL Source Control。它看起来很漂亮,并且与 TFS 挂钩。我使用了其中一个早期版本(beta 和 1.0)一段时间,并且对它非常满意。现在我想起来了,我不知道为什么我这里没有它...... ;)

就在 TFS 之外进行部署而言,您绝对可以做到这一点。我们设置了一个构建服务器,这样每当在构建服务器中检查代码时,它就会自动启动以编译并将其部署到我们的一个测试站点。 Look here 获取入门指南。这确实需要在您的网络服务器上进行一些配置才能正确支持,并且文档充其量是参差不齐的。

一旦您对测试区域感到满意,您就可以将某些内容与构建质量的更改挂钩,以便将代码推送到登台甚至生产服务器......或者只是有一个构建设置来重新编译和部署在那里.尽管我不建议以这种方式进行生产推送。不是因为技术问题,而是时间问题。在必要时从一个位置复制/粘贴到生产环境通常要快得多,从而减少停机时间。

【讨论】:

感谢您的回复,目前 TFS 将新代码推送到测试服务器是我非常想要的目标。自动化部署对我们来说是一个很大的优势。至于我使用数据库项目的原因,部分原因是版本控制,部分原因是我想要一种既能轻松管理数据库结构又能以自动化方法部署它的方法,我觉得这种方法比手动应用每个表更不容易出错/存储过程等 +1 @ChrisLively,所以你不使用数据库项目吗?对于以数据为中心的大型项目,我不是 Visual Studio 中数据库项目的忠实粉丝。当您提到“意外行为”时,您能详细说明一下吗?我试图弄清楚我是否过早地解雇了它。另外,我玩过 Redgate sourcecontrol,它是一个非常简洁的工具。但我觉得你几乎可以使用 TFS 和 TFS PowerTools 做所有它可以做的事情(给你 Windows shell 扩展)。换句话说,每个开发者 500 美元的价格可能不值得。 @samyi:由于部署问题,我已经有几年没有关心数据库项目了。不过想到的一个问题是,在部署时,它会尝试移动目标服务器上的数据库文件以匹配源服务​​器上正在使用的位置,这只是 asinine。 MS 模型用于选择什么去什么不去是脑死的,需要太多的鼠标点击来关闭你不想要的东西,即使这样,你取消选择的项目也可能会被推送,因为它认为你选择的项目取决于它。 @samyi:上述项目在部署到生产环境时可能是灾难性的。所以因为我不能信任它,所以我不使用它。我确实查看了 VS2012 中的更新,但这些更改似乎是肤浅的。他们真的需要摆脱树结构的方法。

以上是关于数据库项目和 TFS 如何帮助我们的开发团队?的主要内容,如果未能解决你的问题,请参考以下文章

Git和TFS版本控制团队工作

怎样使用vs2013开发工具中的源代码管理器TFS

如何拒绝提交到 TFS 2015 上的远程主分支?

JIRA vs TFS 2012 作为完整的 ALM 系统 [关闭]

Team Foundation Server (TFS) 2017 团队资源管理器

微软构建高效DevOps团队培训总结