如何部署在VSTS中备份的新版本的Azure PostgreSQL数据库?

时间:2018-01-26 22:26:11

标签: postgresql azure azure-devops azure-powershell azure-pipelines-release-pipeline

问题

我的CI / CD工作流程现已在VSTS和Azure中很好地设置。在拉取请求或签到要掌握之后,丢失的部分也会更新我的数据库。

到目前为止我做了什么

我的数据库备份脚本在源代码管理中。现在,我有一个小而简单的数据库的极端奢侈。我到目前为止所采取的权宜之计已经在签到主持人之前采取了措施:

  1. 取消PGAdmin中与DB的连接
  2. 使用postgres实用程序dropdb
  3. 删除powershell中的现有数据库
  4. 使用createdb
  5. 在powershell中创建新的空白数据库
  6. 使用psql命令加载数据库(因为出于某些不信任的原因pg_restore绝对拒绝使用我创建的任何存档文件)
  7. 问题

    首先,如何通过VSTS中的任何PowerShell脚本措施在我的放置位置引用我的备份工件?当我们到达"发布"流程的一部分,我的应用程序已存档为.zip文件。我已经玩了很多不同的任务,似乎无法找到如何做到这一点。

    其次,由于我的版本由托管的Azure代理处理 - 即使我弄清楚如何引用我的数据库转储,我也无法想象这些代理可以访问postgres实用程序,如pg_restorepsql。我的唯一解决方案是将我自己的VM作为我的发布代理并在执行powershell之前安装实用程序吗?或者我在VSTS或Azure中是否有一些我可以找到的任务组合?

    感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

首先,您可以通过提取文件任务提取zip文件,{{1}}变量的值是在部署版本期间下载工件的目录。

其次,托管代理不包含PostgreSQL,您无法在其上安装,因此您需要设置私有代理。 (手动设置此代理计算机上PostgreSQL的要求)