はじめに
EntityFrameworkにはC#のクラスからデータベースを作成・更新できるマイグレーション機能があります。 今回はその中でも特定のバージョンへデータベースを更新するマイグレーション機能について記載していこうと思います。
使用するコマンド
使用するコマンドは以下のUpdate-Databaseコマンドです。
引数に何もセットせずに実行すると最新のバージョンのデータベースに更新されますが移行先の名前もしくはIDを指定すると特定のバージョンへデータベースを更新することが可能です。
実際に利用してみた
今回のサンプル例は以下です。
20210829112951_Initial.cs インデックスを付けていない状態
20210830133632_Second.cs インデックスを付け、名前を「IX_Person_Name」としている
20210830141151_Third.cs インデックスを付け、名前を「Index-Name」としている
利用開始時のデータベースは「20210830141151_Third.cs」の状態です。
移行先のIDを指定してデータベースを更新する
Update-Database 20210830133632_Second
下記のようにインデックスの名前が「IX_Person_Name」と変わっているため、データベースが更新されたことが分かります。
移行先の名前を指定してデータベースを更新する
Update-Database Initial
下記のようにインデックスがなくなっているため、データベースが更新されたことが分かります。
おわりに
何となく利用していたEFCoreのマイグレーション機能ですが、ちゃんとドキュメントを見るとほかにも多数のコマンドがあって楽しいですね! これを機に他のコマンドも触ってみよう~~!