😎
DDDのプロジェクト構成におけるEFCoreを用いたDBへのマイグレーション
フォルダ構成
DDDのフォルダ構成ではインフラストラクチャー層にDBのモデルを作成していると思います。
設定ファイル記載
appsettings.jsonファイルはプレゼンテーション層に配置され、そこにDBへの接続情報を記載します。
appsettings.json
{
"ConnectionStrings": {
"DBConnection": "Server=xx.xxx.x.xx;Database=testdb;User Id=sa;Password=P@ssWord!;TrustServerCertificate=true"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}
マイグレーション
dotnet-ef をインストールする
dotnet tool install --global dotnet-ef
マイグレーションの実行
dotnet ef migrations add <名前を付ける> --project .\TESTWebApp.Infrastructure\TESTWebApp.Infrastructure.csproj --startup-project .\TESTWebApp\TESTWebApp.csproj
結果
Build started...
Build succeeded.
Done. To undo this action, use 'ef migrations remove'
スキーマを更新する時
dotnet ef migrations add <新しく名前を付ける> --project .\TESTWebApp.Infrastructure\TESTWebApp.Infrastructure.csproj --startup-project .\TESTWebApp\TESTWebApp.csproj
DBへの反映
dotnet ef database update --project .\TESTWebApp.Infrastructure\TESTWebApp.Infrastructure.csproj --startup-project .\TESTWebApp\TESTWebApp.csproj
参考文献
Discussion