基本的な手順:
1、EFのModelに変更を加える(テーブル操作の場合はcontext)
2、マイグレーションファイルを追加する。
3、DBを更新する。
マイグレーションファイルを追加する:
これを基にDB定義が変更される
パッケージマネージャで下記コマンドを実行し、マイグレーションファイルを作成
add-migration -StartupProject (プロジェクト名) -Project (EFのcontextがあるライブラリ名) 〇〇〇(マイグレーション名(任意))
*EFのライブラリとスタートアッププロジェクトが同じ場合は-project系は省略可
*任意オプションとして「-o (相対フォルダパス)」とするとその場所にマイグレーションファイルを作成
DBを更新する:
パッケージマネージャで下記コマンドを実行し、DB構成を更新
Update-Database -StartupProject (プロジェクト名) -Project (EFのcontextがあるライブラリ名)
*接続先に設定されているDBの構成が変更される
*任意オプションとして「– –environment Production」として接続先環境を切り替える
DBの定義変更を戻す:
下記コマンドでDB定義を戻す
EntityFrameworkCore\Update-Database -StartupProject (プロジェクト名) -Project (EFのcontextがあるライブラリ名)〇〇〇(マイグレーション名)
*〇〇〇(マイグレーション名)までDBの定義を戻す
マイグレーションを一つ取り消す(DB自体は影響なし):
下記コマンドで直近のマイグレーションファイルを一つ消す
EntityFrameworkCore\Remove-Migration -StartupProject (プロジェクト名) -Project (EFのcontextがあるライブラリ名)
DB側のマイグレーション定義テーブル:
__EFMigrationsHistoryテーブル
・MigrationIdカラムにDBに反映されたマイグレーションファイルが記載
・MigrationIdの反映されたものとDBの構成は一致していないと以降の反映が上手くいかない場合がある。(あるはずのテーブルやカラムが無かったり、逆も然り)