You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PostgreSQL项目/脚本纳入Azure DevOps进行管理?

替代SQL Server为PostgreSQL后的Visual Studio项目与Azure DevOps管理方案

Visual Studio中管理PostgreSQL数据库的可行方案

方案1:用EF Core迁移(推荐适配.NET应用)

  • 在你的.NET项目里安装Npgsql.EntityFrameworkCore.PostgreSQL包
  • 要么用Scaffold-DbContext命令从现有PostgreSQL库生成实体模型,要么手动写实体类定义表结构
  • 每次改结构时,用Add-Migration生成迁移文件,这些文件会存在项目里,和代码一起做版本控制
  • 本地测试时用Update-Database把变更同步到数据库

方案2:第三方Visual Studio扩展

  • 去Visual Studio Marketplace搜「PostgreSQL Database Project」这类扩展,安装后就能像SQL Server数据库项目一样创建表、视图等对象
  • 扩展支持生成变更脚本,直接通过工具部署到PostgreSQL库

Azure DevOps中的托管与变更管理

1. 项目文件托管

  • 不管是EF Core的迁移项目,还是第三方扩展生成的SQL脚本,直接提交到Azure DevOps的Git仓库就行——可以和应用代码放同一个仓库,也可以单独建数据库仓库
  • 平时用Git分支策略(比如main分支保护、PR审核)来管控变更提交,和管理应用代码逻辑一样

2. 自动化变更部署(CI/CD管道)

针对EF Core项目:

  • 在Azure DevOps管道里加个.NET Core任务,执行dotnet ef database update命令就行,注意把数据库连接串存成管道变量(建议用Azure Key Vault存敏感信息)
  • 简单的管道示例:
    - task: DotNetCoreCLI@2
      inputs:
        command: 'run'
        arguments: '--project YourDbProject.csproj -- "update"'
        workingDirectory: '$(System.DefaultWorkingDirectory)/YourDbProject'
      env:
        ConnectionStrings__Default: $(PostgreSQLConnStr)
    

针对纯SQL脚本:

  • 管道里先装PostgreSQL客户端,然后用psql命令执行脚本:
    psql -h $(DB_HOST) -U $(DB_USER) -d $(DB_NAME) -f ./scripts/your_change.sql
    
  • 用户名、密码这类敏感信息,用Azure DevOps变量组或者Key Vault管理,别硬写在脚本里

内容的提问来源于stack exchange,提问作者Johnny Zghaib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 11:11:15