d1-04-db-config について
Entity Framework Core を使って ASP.NET Core API の PostgreSQL 接続を設定するスキルです。EF CLI 用のホスト側接続文字列とコンテナー内の接続文字列を区別し、この手順で再デプロイは不要としています。
主な機能
- 01Npgsql EF Core パッケージの追加
- 02開発用接続文字列の設定
- 03UseNpgsql による AppDbContext の登録
- 04ホストとコンテナーの接続文字列の区別
活用シーン
- 01API の PostgreSQL 接続設定
- 02データベースマイグレーションに向けた EF Core プロジェクトの準備
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ softinter-chiangrai/ up-ai-skill-training --skill d1-04-db-configインストール後、Claude Code で/d1-04-db-configを入力して読み込まれたか確認します。
詳細
Day 1 · Step 4 — DB 接続を設定する(再デプロイ不要)
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"
}
}
ここでは localhost を使用します。EF CLI コマンド(次のステップ)はホストから実行するためです。up-api
コンテナー内では、接続文字列に代わりに compose サービス名の db を使用します。これは docker-deploy ステップでコンテナーの環境変数にすでに設定されているため、変更しないでください。
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")));
このステップで変更するのはコードと設定のみです。再デプロイしないでください。
コメント
Markdown 対応