数据库开发和部署方法和工具

时间:2013-01-04 09:26:30

标签: sql-server database visual-studio deployment version-control

我的团队使用ASP.NET开发Web应用程序。该应用程序非常基于数据库(我们使用SQL Server)。除服务器和客户端代码外,大多数功能都需要数据库开发。我们使用GIT作为源代码管理系统。

为了检入(以及稍后部署)数据库更改,我们创建SQL脚本并将其签入。我们的安装程序知道运行它们,这就是我们部署这些更改的方式。合并更改时使用脚本非常不舒服(例如,如果两个开发人员将列添加到同一个表中)。

所以我的问题是你能建议的其他方法或工具是什么?我知道Visual Studio有一个可能有用的数据库项目,我还没有了解它,我想知道在我开始学习之前是否还有其他选项。

谢谢!

2 个答案:

答案 0 :(得分:1)

我认为,您必须在数据库开发的第一步中添加worlflow并使用Liquibase(检查Liquibase Quick-Start,其中changelog从创建初始结构开始。)

来自开发人员POV添加Liquibase意味着appearing of additional XML-file(s) in source-tree,当必须在某些变更集中更改数据库模式时

答案 1 :(得分:0)

首次完全披露我为制作此产品的Red Gate工作......

您可能有兴趣看一下SQL Source Control。它是SSMS的一个插件,它将您的开发数据库连接到现有的版本控制系统,在您的情况下是git。

当开发人员对dev数据库(在专用本地副本或共享开发人员数据库中)进行更改时,将检测到此更改,然后可以将其提交到存储库。其他开发人员可以接受此更改,您可以将其传播到其他环境。

在部署时,您可以使用SQL Compare工具从您签出的存储库中的特定修订版进行部署。

在像两个开发人员对同一个表进行更改的示例中,它非常方便。第二个开发人员可以在提交更改之前从版本控制系统中获取更改。或者,您可以使用git的分支/合并功能在单独的分支中跟踪这些功能,并将它们作为单独的更改进行部署。还可以将其耦合到CI系统中。

使用git:

运行SQL源代码管理的一些细节

指向更一般的设置指南的链接