首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Octopus & TeamCity将数据库包部署到Server

通过Octopus & TeamCity将数据库包部署到Server
EN

Stack Overflow用户
提问于 2019-08-27 09:02:49
回答 1查看 692关注 0票数 1

我正在通过Redgate软件和TeamCity实现Server数据库的CI/CD。我成功地构建了NuGet数据库包并将其推送到八达通。我可以在八达通图书馆部分看到NuGet包。但是,在将该包部署到Server时,我遇到了一些问题。我找不到内置的步骤模板“部署一个NuGet包”在八达通过程部分。我也尝试过“部署一个包”步骤模板,但它没有工作,我正在遵循这个指南。

https://documentation.red-gate.com/sr1/worked-examples/deploying-a-database-package-using-octopus-deploy-step-templates

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-27 14:20:15

很好的问题是,要在八达通部署中使用Redgate的工具,您需要安装他们提供的step模板。我推荐创建数据库版本部署数据库版本。当您浏览步骤模板时,您可能会注意到步骤模板到直接从包中部署。state自动化的基于状态的功能通过将存储在NuGet包中的数据库的状态与目标数据库进行比较来工作。每次运行时,它都会创建一组新的增量脚本来应用。因此,建议的程序是:

  1. 将数据库包下载到跳转框中。
  2. 通过将跳转框上的包与Server上的数据库进行比较来创建增量脚本。
  3. 检查增量脚本(可以在dev和test中跳过)。
  4. 使用跳转框上的触角在Server上运行脚本。

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

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

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

变量的全部值是:

代码语言:javascript
复制
C:\RedGate\#{Octopus.Project.Name}\#{Octopus.Release.Number}\Database\Export

下一步是批准数据库发布。我建议创建一个自定义团队来负责这方面的工作。我倾向于在Dev和QA中跳过这一步。

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

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

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

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

如果您想了解更多关于如何连接这个问题的信息,请查看我写的博客文章(并复制这里 )。

我还编写了关于使用八达通部署的数据库部署的整个系列文章,您可以找到这里

最后,对于执行数据库部署的用户来说,您需要我们的文档涵盖跳转框和权限。

希望这能帮上忙!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57671151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档