実践 Entity Framework ~ マイグレーションとコマンド
前回 DbContext クラスから継承した Context クラスを作成しました。今回は、前回少し説明したマイグレーションを利用して、実際のデータベースを作成してみます。
Enable-Migrations
まずは、プロジェクト内でマイグレーションが利用できるように有効化する必要があります。
Configuration ファイルを用意して・・・とか色々ありますが、わざわざ用意する必要はありません。コマンド一発で可能です。
そのコマンド入力は、NuGet で利用した、パッケージマネージャーコンソールを使用し、次のコマンドを入力します。
Enable-Migrations
例のごとく、enable-m あたりで「Tabキー」を押すと、自動補完されるはずです。しばらく待つと・・・
「有効になりました」のメッセージとともに、ひとつのファイルとフォルダが作成されます。
この新たに作成された、「Migrations」フォルダ内の「Configuration.cs」(C#の場合)ファイルが、マイグレーションの設定ファイルになります。
ここで色々と設定できますが、とりあえず気にせず次に行きましょう。
Add-Migragion
マイグレーションが有効になったので、今度は現在の内容をデータベースに反映させてみましょう。現在の内容といっても何も作成していないので、単純にデータベースが作成されるだけですが・・・
まずは、変更点をデータベースに反映させるためのコードを記述する必要がありますが・・・当然ながら、そんな事を手でやっていたら、マイグレーションの意味がありません。ちゃんと便利なコマンドが用意されています。
Add-Migration 名称
「名称」の部分に識別するための名称を設定する必要があります。この名称を指定して、その状態まで戻すといったことも可能なので、なるべくわかりやすい名称にしたほうが良いかと。
今回は最初ということで、「Initial」とでもしておきます。
Add-Migration Initial
「スキャフォールディング」という、一般生活上では聞きなれない言葉がつらつら出てきますが・・・
スキャフォールディング(scaffolding)、足場という意味らしいですが、データベースへ反映させるための骨組みを作っている的な感じでしょうか。
成功すると、「時間_指定した名称」ファイルが作成されます。中身は、Up メソッドと、Down メソッドがあるだけですね。モデルの指定が何もないので当然ですが・・・足場はできたので、とりあえず次に行きましょう。
Update-Database
さて、反映させてみます。これもコマンド一発で。
Update-Database
うまくいったみたいな感じのメッセージが。一切何も設定してませんが一体どこにできたのでしょうか?
今回使用しているマシンは(仮想環境ですが)Windows 8.1 のクリーンインストール後、Visual Studio Community 2013 をフルインストールしただけです。別途 SQL Server 等はインストールしておりませんが・・・
答えはここです。
(localdb)\MSSQLLocalDB とはなんぞや?
・・・Visual Studio に付属している、SQL Server Express LocalDB です。
この長ったらしいデータベース名は?
・・・Context クラスのフルネーム(名前空間付)がデータベース名になります。
なんで?
・・・そういうルールなんで・・・(Web.config にヒントがありますが)
とにかく本当にデータベースが作成されました。
これでOK・・・なわけないって?
とりあえず、基本的な3つのコマンドの利用方法を見てきました。
次回以降、ここに色々と付け加えて、目指すものを作成してみましょう。
つづきはこちら