gpt4 book ai didi

sql-server - 您如何管理用于新构建和迁移的 sqlserver 数据库项目?

转载 作者:行者123 更新时间:2023-12-04 06:54:52 24 4
gpt4 key购买 nike

你如何为 Visual Studio 项目管理你的 sql server 数据库构建/部署/迁移?

我们的产品包含合理的数据库部分(~100 个表,~500 个进程/函数/ View ),因此我们需要能够部署当前版本的新数据库以及将旧数据库升级到当前版本。目前,我们维护用于创建新数据库和版本之间迁移的单独脚本。显然不理想,但其他人如何处理这个问题?

这对我们来说很复杂,因为有许多客户都有自己的数据库实例,而不是说我们自己的 Web 服务器上只有开发/测试/实时实例,但是为其他人管理开发/测试/实时的过程必须是相似的。

更新:我不想使用任何像 RedGate 那样的专有产品(尽管我一直听说它们非常好,并且会考虑将其作为解决方案)。

最佳答案

我们使用 Red-Gate SQLCompare 和 SQLDataCompare 来处理这个问题。这个想法很简单。这两种比较产品都可以让您将选定表(例如配置表)中的模式或数据的完整图像作为脚本进行维护。然后,您可以将任何数据库与脚本进行比较并获得更改脚本。我们将脚本保存在我们的 Mercurial 源代码控制中,并标记(标签)每个版本。然后,支持人员可以获取任何版本的脚本,并使用 Redgate 工具从头开始创建或升级。

Redgate 还有一个 API 产品,允许您从代码中执行比较功能。例如,这将允许您在安装程序或产品本身中具有自动升级功能。我们经常将它用于我们托管的 Web 应用程序,因为它使我们能够更完全地自动化部署过程。在我们的例子中,我们有一个支持可以执行的 MSBuild 任务来执行自动推出和升级。如果您分发给第三方,则必须为每个包含 API 的分发支付少量的额外许可费。

Redgate 还有一个工具可以自动打包数据库安装或升级。我们不使用那个,因为我们发现与版本的脚本进行比较为我们提供了更大的灵活性。

Redgate 工具还可以帮助我们进行开发,因为它们使以非常细粒度的方式对架构和配置数据进行源控制变得微不足道(每个数据库对象都可以放在自己的文件中)

关于sql-server - 您如何管理用于新构建和迁移的 sqlserver 数据库项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2675609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com