我想在azure管道上创建一键式部署,以将Postgres Sql更改从开发环境迁移到QA环境,这与我们使用SQL Server Database项目实现的功能类似,其中Powershell脚本将更改部署到远程服务器。
我尝试了pg_dump和psql命令,这些命令将创建转储文件并将其还原到远程服务器上。它不执行差异(即比较源和目标上的数据库更改,仅复制丢失的更改)
答案 0 :(得分:0)
您偶然发现了Postgres生态系统中缺少的功能之一。使用Postgres自己的工具解决迁移的一种更优雅的方法是将迁移打包为Postgres Extension。这需要您自己生成部署脚本,但这是应用和打包部署的一种简便方法。
有许多商业工具将协助完成此过程,例如Datical,Liquibase和Flyway。请注意,其中某些仍然需要您自己生成更改语句,有些尝试为您创建更改语句。
生成变更声明是完全不同的动物,我建议您查看Postgres的架构差异工具,以找到最适合您需求的套件。