Sql server 通过Octopus&;将数据库包部署到SQL Server;团队城市

Sql server 通过Octopus&;将数据库包部署到SQL Server;团队城市,sql-server,database,devops,octopus-deploy,redgate,Sql Server,Database,Devops,Octopus Deploy,Redgate,我正在通过Redgate软件和TeamCity实现SQL Server数据库的CI/CD。我设法构建NuGet数据库包并将其推送到Octopus。我可以在八达通的图书馆部分看到NuGet软件包。但在将该包部署到SQL Server时,我面临一些问题。我在Octopus流程部分找不到内置的步骤模板“部署NuGet包”。我也尝试过“部署包”步骤模板,但它不起作用 非常感谢您的帮助。好问题,要将Redgate的工具与Octopus Deploy结合使用,您需要安装他们提供的步骤模板。我推荐和。在浏览

我正在通过Redgate软件和TeamCity实现SQL Server数据库的CI/CD。我设法构建NuGet数据库包并将其推送到Octopus。我可以在八达通的图书馆部分看到NuGet软件包。但在将该包部署到SQL Server时,我面临一些问题。我在Octopus流程部分找不到内置的步骤模板“部署NuGet包”。我也尝试过“部署包”步骤模板,但它不起作用


非常感谢您的帮助。

好问题,要将Redgate的工具与Octopus Deploy结合使用,您需要安装他们提供的步骤模板。我推荐和。在浏览步骤模板时,您可能会注意到要删除的步骤模板。SQL更改自动化基于状态的功能通过比较NuGet包中存储的数据库的状态与目标数据库来工作。每次运行时,它都会创建一组新的要应用的增量脚本。因此,建议的流程是:

  • 将数据库包下载到跳转框中
  • 通过将跳转框上的包与SQL Server上的数据库进行比较来创建增量脚本
  • 查看增量脚本(可以在开发和测试中跳过)
  • 使用跳转框上的触手在SQL Server上运行脚本
  • 让我们继续,逐一浏览。下载包的步骤非常简单,除了选择包名外,没有自定义设置

    Redgate-Create数据库发布步骤有点有趣。这是生成将在数据库上运行的实际增量脚本的步骤。让大多数人困惑的是导出路径。导出路径是增量脚本将导出到的位置。这需要是Octopus Deploy触手文件夹之外的目录。这是因为“Redgate-DeployfromDatabaseRelease”步骤需要访问该路径,每个步骤的触手文件夹都不同

    我喜欢做的是使用项目变量

    变量的完整值为:

    C:\RedGate\#{Octopus.Project.Name}\#{Octopus.Release.Number}\Database\Export
    
    下一步是批准数据库版本。我建议创建一个定制团队来负责这项工作。我倾向于跳过Dev和QA中的这一步

    创建数据库发布步骤使用Octopus部署中内置的工件功能。这允许审批人下载文件并进行审查

    最后一步是部署数据库版本。此步骤获取导出数据路径中的增量脚本,并在目标服务器上运行它。这就是我建议将导出路径放在变量中的原因

    其他一些常规项目有助于启动。首先,不要将触手直接安装到SQL Server实例上。在生产环境中,典型的SQL Server设置是一个集群,或者它们有多个始终处于高可用性状态的节点。通过虚拟IP处理对SQL Server的访问

    如果要在两个节点上安装触手,Octopus Deploy将尝试同时在两个节点上运行更改脚本(默认情况下)。那会引起很多戏剧性的事情。我建议使用跳转框,因为您需要在Octopus Deploy和SQL Server之间放置一些东西。当你对此感到满意时,我建议你使用worker(但这有点范围蠕变,所以我不介绍这一点)

    如果你想知道更多关于如何连接这个问题的信息,请查看我写的博客文章(并从中抄写此答案)

    我还编写了一个关于Octopus Deploy数据库部署的完整系列,您可以找到

    最后,我们将为进行数据库部署的用户提供我们的服务


    希望有帮助

    谢谢你的回复。尽管如此,我还是遵循了所有的步骤。我的问题仍然存在。我还将错误和配置通过电子邮件发送给您。请看一看,然后回复。谢谢,教授,你还是遇到了一些问题。关于电子邮件/私人信息,上面的帖子似乎跳过了几个步骤,请务必遵守所有步骤。请记住,章鱼只是拼图的一部分。请阅读本文以连接所有部分: