2012-02-14 5 views
5

EF 4.3とともにASP.net MVC 3プロジェクトでELMAHをSQL Serverで使用したいと考えています。Autorun ELMAHデータベーススクリプト

SQLスクリプトを自動的に実行してelmahテーブルを作成する方法はありますか?

私はマイグレーションが仕事をするかもしれないと思っていますが、私はあまり使用していません。

私は、ソリューションをチェックアウトして、まっすぐに実行することができます(デプロイ時には、ローカルまたはフルのSQL Serverにsqlexpressする)ことを目的としています。手動でさまざまなヘルパーSQLスクリプトを実行する必要はありません。

答えて

5

空のコードベースの移行を追加します(保留中のDB変更がない場合はadd-migration ElmahSetupと入力してください)。

Sql()への呼び出しを追加してUp()メソッドでelmahを実行します。ソリューションを完成させるには、対応するドロップステートメントをDown()メソッドに追加する必要があります。

+0

あなたはダウンのためのスクリプトも提供できますか? – Adaptabi

+0

私はスクリプトがどんなものか分かりませんが、 'Down()'メソッドを作成するのは、基本的に 'Up()'メソッドで作成された全ての 'Drop'ステートメントのセットです。 –

+2

偉大な解決策@AndersAbelここにEFの移行でこれを行うための私のスクリプトです:[リンク](https://gist.github.com/danmusk/7265235) – DanMusk

3

私はこの質問はEF 4.3のためだったけど、あなたはEF 6.1を使用している場合は、あなたのためにELMAHテーブルとprocsのを初期化しますnugetパッケージ今そこにある:https://www.nuget.org/packages/Elmah.SqlServer.EFInitializer/が。 Webプロジェクトに追加します。その後、EFコードを使用して作成します。 App_StartフォルダにInitializerを追加するので、実際にコードを追加する必要はありません。データベースへの移行が追加され、確実に一度だけ追加されます。

+0

これはとても良いアプローチです。頭痛の多くを保存:) –