关于数据库:如何在 SQL Server 中作为一个团队工作?

How to work in SQL Server as a team?

我和我的团队正在开发一个 SQL Server 数据库。我们希望在不同的 PC 上工作,但使用相同的数据库。有没有可能我们可以在每台 PC 上同步我们的工作,或者在工作的同时共享我们的数据库?

如果可能的话,如何使用 Team Foundation 服务器?


您可以使用 SQL Server 数据库工具 (SSDT) 将您的数据库表示为一系列脚本。然后可以将这些脚本添加到源代码管理中。 Git 是迄今为止最流行的源代码控制系统,Team Foundation Server 和 Visual Studio Team Services 对 Git 有很好的支持。

每个开发人员都将在他们自己的机器上使用 Visual Studio(或 VS Code)来完成他们的数据库工作。当开发人员想要共享他们的更改时,他们会将其提交给源代码控制。然后,其他开发人员可以使用新的更改更新他们的本地代码版本。 SSDT 增加了对使您的数据库和数据库项目同步的支持。

现在您的代码处于源代码控制中,您可以更进一步,使用 VSTS 构建和发布管理添加持续集成构建和自动化部署等内容。这样,您可以自动测试数据库更改,甚至在部署到测试和生产环境之前运行单元和集成测试。

以下 Channel9 视频介绍了这些工具:在 < 10 分钟内使用 Visual Studio SQL Server Data Tools 进行数据库持续集成和部署


如果您只关心架构更改(而不是数据更改),您可以使用 Visual Studio 的 SQL Server 项目和源代码控制系统来帮助管理它。然后,您可以使用架构比较工具将您的项目与服务器、服务器与项目或服务器与服务器进行比较。

有一些来自 Redgate 等公司的工具可以让这个过程自动化。我没有使用过这些,但它们可能是另一种选择。