2012-02-14 12 views
5

Desidero utilizzare ELMAH con SQL Server sul mio progetto ASP.net MVC 3, insieme a EF 4.3.Script di database Autorun ELMAH

C'è un modo per eseguire automaticamente lo script sql che crea le tabelle elmah?

Immagino che le migrazioni di ef possano svolgere il lavoro, ma non le ho ancora utilizzate molto.

Sto puntando a una soluzione in cui è possibile eseguire il checkout della soluzione ed eseguirla direttamente (in sqlexpress localmente o in completo server sql in distribuzione) e farlo funzionare senza dover eseguire manualmente i vari script sql helper

risposta

5

Aggiungere una migrazione di codice vuota (digitare solo add-migration ElmahSetup quando non vi sono modifiche di DB in sospeso).

Quindi aggiungere chiamate a Sql() per eseguire elmah nel metodo Up(). Per completare la soluzione è necessario aggiungere le dichiarazioni di rilascio corrispondenti al metodo Down().

+0

puoi fornire gli script anche per il down? – Adaptabi

+0

Non so come siano gli script - ma la creazione di un metodo 'Down()' è fondamentalmente un insieme di istruzioni 'Drop' per tutto ciò che è stato creato con il metodo' Up() '. –

+2

Ottima soluzione @AndersAbel Ecco il mio script per farlo con la migrazione EF: [link] (https://gist.github.com/danmusk/7265235) – DanMusk

3

So che questa domanda era per EF 4.3, ma se si utilizza EF 6.1 poi c'è ora un pacchetto NuGet che inizializzare la tabella Elmah e procs per voi: https://www.nuget.org/packages/Elmah.SqlServer.EFInitializer/. Aggiungilo al tuo progetto web. Utilizzerà quindi il codice EF per crearlo per te. Aggiunge un inizializzatore alla tua cartella App_Start in modo che tu non debba aggiungere alcun codice. Aggiungerà una migrazione al tuo database per assicurarti che venga aggiunto solo una volta.

+0

Questo è un approccio molto carino. Salvato un sacco di mal di testa :) –