Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9749

データベースの状態を指定したマイグレーションまで戻したいときの手順

$
0
0
「あ、制約つけ忘れた」 「やっぱカラム追加したほうがいいなぁ」 テーブル作成前に戻したいなってこと、ありますよね。 これまで ASP.NET を使った経験がなく、職場の先輩に教えてもらったので、メモとして残しておきます。 マイグレーションとは? データベースを削除してから作り直すと,DBに保存されている情報が全て削除されてしまいます. こういった事態を回避する方法として、データベースマイグレーションを行う方法があります。 マイグレーションとは、DBに保存されているデータを保持したまま、テーブルの作成やカラムの変更などを行うための機能です。 densanlabsから引用 手順 データベースの状態を、指定したマイグレーションまで戻したいときの手順は以下のとおりです。 戻したいマイグレーションファイルを確認する Update-Databaseを実行する remove-migrationを実行する add-migrationを実行する update-databaseを実行する それでは順番に確認していきましょう。 戻したいマイグレーションファイルを確認する まずは戻したいマイグレーションファイルを確認しましょう。 例 20220303115938_User.cs 20220304115938_Wallet.cs 20220305115938_Item.cs このようにマイグレーションファイルがあるとして、20220305115938_Item.csを削除したいとします。 Update-Databaseを実行する 戻したいマイグレーションファイルを確認したら、次はコマンドを実行していきます。 [ツール] メニューで、[NuGet パッケージ マネージャー] > [パッケージ マネージャー コンソール] の順に選択します。 これからコマンドを実行するわけですが、注意点があります。 20220305115938_Item.csを削除したい場合、20220304115938_Wallet.csをUpdate-Databaseで指定することです。 つまり、削除したいマイグレーションファイル(20220305115938_Item.cs)の一つ前を指定して、Update-Databaseを実行します。 コンソールで下記のようにコマンドを実行してください。 PM> Update-Database 20220304115938_Wallet Build started... Build succeeded. Done. これでデータベースは20220304115938_Wallet.csまで戻りました。 (この時点ではマイグレーションファイルは削除されていません。) remove-migrationを実行する 不要になったマイグレーションファイルを削除していきます。 下記のコマンドを実行してください。 PM> remove-migration Build started... Build succeeded. Removing migration '20220305115938_Item'. Reverting the model snapshot. Done. これでマイグレーションが削除されます。 ちなみに、エディタから直接ファイルを消すと、もう一度テーブルを作成するときにエラーが発生します。 remove-migrationコマンドで削除するようにしましょう。 削除だけの場合、ここまでで終了です。 update-databaseを実行して、更新を反映させておきましょう。 add-migrationを実行する 設定を見直したり、追加したらもう一度テーブルを作成します。 PM> add-migration Item Build started... Build succeeded. To undo this action, use Remove-Migration. update-databaseを実行する 最後にupdate-databaseを実行して、更新を反映させます。 PM> update-database Build started... Build succeeded. Done. これで完了です。 まとめ テーブル操作は慎重になりますよね。 最初はビビりながらも、たくさん経験していくことで慣れてくると思います。 地味にハマったので、記事にしました。 少しでも参考になれば幸いです。 参考資料 チュートリアル: ASP.NET MVC アプリで EF の移行を使用して Azure にデプロイする Entity Framework Core ツールのリファレンス - Visual Studio のパッケージ マネージャー コンソール

Viewing all articles
Browse latest Browse all 9749

Trending Articles