SuperAPI AI 工具集

d1-04-db-config

部署与运维

查看项目

更新于 10-16 02:08

技能介绍

用途

该技能用于配置 up-api .NET 项目的 PostgreSQL 数据库连接,属于 Day 1 培训流程的第 4 步。其目标是在不重新部署的前提下,通过代码与配置完成数据库连接的接入。

主要能力

  • 为 up-api 项目添加 PostgreSQL 相关的 NuGet 包:Npgsql.EntityFrameworkCore.PostgreSQL 与 Microsoft.EntityFrameworkCore.Design。
  • 在 appsettings.Development.json 中配置连接字符串。
  • 创建 Data/AppDbContext.cs,定义继承自 DbContext 的 AppDbContext 类。
  • 在 Program.cs 中通过 AddDbContext 注册 AppDbContext,并使用 UseNpgsql 读取连接字符串。

使用方式

在 up-api 目录下执行以下命令安装包:

cd up-api
dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL
dotnet add package Microsoft.EntityFrameworkCore.Design

在 appsettings.Development.json 中配置:

{
  "ConnectionStrings": {
    "Default": "Host=localhost;Port=5432;Database=up_db;Username=upadmin;Password=uppass"
  }
}

创建 Data/AppDbContext.cs:

public class AppDbContext : DbContext
{
    public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }
    // DbSet<Entity> properties are added in the entity-migration step
}

在 Program.cs 中注册:

builder.Services.AddDbContext<AppDbContext>(opt =>
    opt.UseNpgsql(builder.Configuration.GetConnectionString("Default")));

适用场景

适用于需要为 .NET 项目接入 PostgreSQL 数据库、使用 EF Core 进行数据访问的初始化配置阶段。特别适合在本地开发环境中运行 EF CLI 命令前的准备步骤。

限制与注意事项

  • 本步骤仅涉及代码与配置,不执行重新部署。
  • 本地连接字符串使用 localhost,因为后续 EF CLI 命令从宿主机运行。
  • 在 up-api 容器内部,连接字符串应使用 compose 服务名 db,该值已在 docker-deploy 步骤中通过容器环境变量设置,不应修改。
  • DbSet<Entity> 属性将在实体迁移步骤中添加,本步骤不包含。