😎

DDDのプロジェクト構成におけるEFCoreを用いたDBへのマイグレーション

2023/08/21に公開

フォルダ構成

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

参考文献

https://qiita.com/intx24/items/245c4403e2145bc3cba7

Discussion