我正在通过Redgate软件和TeamCity实现Server数据库的CI/CD。我成功地构建了NuGet数据库包并将其推送到八达通。我可以在八达通图书馆部分看到NuGet包。但是,在将该包部署到Server时,我遇到了一些问题。我找不到内置的步骤模板“部署一个NuGet包”在八达通过程部分。我也尝试过“部署一个包”步骤模板,但它没有工作,我正在遵循这个指南。
任何帮助都将不胜感激。
发布于 2019-08-27 14:20:15
很好的问题是,要在八达通部署中使用Redgate的工具,您需要安装他们提供的step模板。我推荐创建数据库版本和部署数据库版本。当您浏览步骤模板时,您可能会注意到步骤模板到直接从包中部署。state自动化的基于状态的功能通过将存储在NuGet包中的数据库的状态与目标数据库进行比较来工作。每次运行时,它都会创建一组新的增量脚本来应用。因此,建议的程序是:

让我们继续前进,每一个都走一遍。下载包的步骤非常简单,除了选择包名之外,没有自定义设置。

Redgate - Create数据库发布步骤更有趣一些。这是生成将在数据库上运行的实际增量脚本的步骤。大多数人的绊脚石是出口之路。导出路径是将增量脚本导出到的位置。这需要是八达通部署触须文件夹之外的目录。这是因为"Redgate -“步骤需要访问该路径,而Tentacle文件夹对于每个步骤都是不同的。

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

变量的全部值是:
C:\RedGate\#{Octopus.Project.Name}\#{Octopus.Release.Number}\Database\Export下一步是批准数据库发布。我建议创建一个自定义团队来负责这方面的工作。我倾向于在Dev和QA中跳过这一步。

create发布步骤使用了内置在Octopus部署中的工件功能。这允许审批者下载文件并检查它们。

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

一些其他的一般项目来帮助我们开始工作。首先,不要将触角直接安装到Server实例上。在生产中,典型的Server设置是一个集群,或者它们有多个节点,并且始终具有高可用性。对Server的访问是通过虚拟IP处理的。

如果要在两个节点上安装触手,Octopus部署将尝试同时在两个节点上运行更改脚本(默认情况下)。那会引起很多戏剧性的。我建议使用跳转框,因为您需要一些东西在Octopus和Server之间。当您对此感到满意时,我会建议您使用员工(但这有点让人毛骨悚然,所以我不打算讨论这个问题)。

如果您想了解更多关于如何连接这个问题的信息,请查看我写的博客文章(并复制这里 )。
我还编写了关于使用八达通部署的数据库部署的整个系列文章,您可以找到这里。
最后,对于执行数据库部署的用户来说,您需要我们的文档涵盖跳转框和权限。。
希望这能帮上忙!
https://stackoverflow.com/questions/57671151
复制相似问题