wtorek, 27 marca 2012

EF Code Migrations uruchomienie z kodu

Ostatnio dostałem zapytanie odnośnie uruchomienia migracji z kodu aplikacji. Jak wiadomo sama procedura standardowo jest przeprowadzana z PowerShell-a w VS.
Podstawową komendą jest Update-Database. Co dzieje się dalej?
Otóż jeżeli zobaczymy do katalogu gdzie znajduje się paczka z EF znajdziemy tam narzędzie migrate.exe:


Jeżeli uruchomimy narzędzie z linii komend zobaczymy następujący ekran:


Mamy tutaj ładne podsumowanie poleceń, których działanie pokazywałem w ostatnich postach odnośnie migracji.
W tym miejscu można by wywołać aplikację z odpowiednimi parametrami i otrzymać rezultat o który nam chodzi.
Istnieje także drugie rozwiązanie - dużo prostsze i lepsze...


Uruchomienie migracji bezpośrednio z kodu:
Team EF przygotował bardzo dobrze migracje aby można je było dokonywać z kodu. Otóż aby dokonać migracji wystarczą właściwie trzy linijki kodu (dla upartego można by scalić wszystko do jednej linijki):

            var configuration = new Configuration();
            var migrator = new DbMigrator(configuration);
            migrator.Update("AddBirthDateToPerson");

W podobny sposób można pobrać skrypt SQL:


            var configuration = new Configuration();
            var migrator = new DbMigrator(configuration);
            var scriptor = new MigratorScriptingDecorator(migrator);
            string script = scriptor.ScriptUpdate(null, "AddBirthDateToPerson");

Brak komentarzy:

Prześlij komentarz