0

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

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

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

谢谢!

4

2 回答 2

1

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

从开发人员 POV 添加 Liquibase 意味着在 source-tree 中出现额外的 XML 文件,当必须在某些变更集中更改数据库模式时

于 2013-01-04T15:37:43.550 回答
0

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

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

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

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

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

使用 git 运行 SQL 源代码控制的一些细节:

以及更通用的设置指南的链接

于 2013-10-15T14:03:13.250 回答