代码之家  ›  专栏  ›  技术社区  ›  Ryanman

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

  •  0
  • Ryanman  · 技术社区  · 7 年前

    问题所在

    我的CI/CD工作流目前在VSTS和Azure中设置得很好。在向master提交请求或签入后,缺失的部分也在更新我的数据库。

    到目前为止我所做的

    我在源代码管理中有我的DB备份脚本。现在,我有一个非常豪华的小型、简单的数据库。到目前为止,我一直在采取的权宜之计是在登记到master之前:

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

    这些问题

    首先,我如何通过VSTS中的任何powershell脚本度量引用放置位置中的备份工件?当我们到达流程的“发布”部分时,我的应用程序已经归档到。zip文件。我已经处理了很多不同的任务,但似乎不知道如何完成。

    其次,由于我的发布是由托管的Azure代理处理的,即使我知道如何引用我的数据库转储,我也无法想象这些代理可以访问postgres实用程序,如 pg\U还原 psql . 在这里,我唯一的解决方案是启动自己的VM作为发布代理,并在执行powershell之前安装实用程序吗?或者,在VSTS或Azure中是否有一些我缺失的任务组合?

    谢谢你的帮助!

    1 回复  |  直到 7 年前
        1
  •  1
  •   starian chen-MSFT    7 年前

    首先,您可以通过 提取文件 任务和价值 System.DefaultWorkingDirectory 变量是在发布部署期间将工件下载到的目录。

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