2013-03-28 11 views
10

Zacząłem używać EF, używając najpierw bazy danych i generując mój diagram z bazy danych.Aktualizacja schematu bazy danych bez upuszczania danych?

Teraz zmieniłem i dokonałem wielu zmian w moim diagramie i chciałbym zaktualizować mój schemat bazy danych bez utraty danych. Jednak generowanie bazy danych z diagramu wydaje się upuszczać wszystkie tabele i odtwarzać je.

Najpierw znalazłem "migracje danych" dla kodu. Czy jest coś podobnego na pierwszy model lub w jaki sposób mogę zachować dane?

Używam VS 2012 z EF5

+1

instalacja do testowej bazy danych, a następnie zrobić różnicę między testowej bazy danych i produkcji przy użyciu narzędzia do wyboru, który produkuje skrypty różnica: http : //stackoverflow.com/questions/5861991/deploying-database-changes-with-ef-4-1 – AaronLS

+0

Z wyjątkiem "generate database from model" zamienia wszystkie twoje ładne DefiningQueries (widoki) na tabele i kosza plik edmx w procesie . – Dave

+0

W takim przypadku używam funkcji porównywania schematu programu Visual Studio. Działa całkiem dobrze. Zmienione nazwy kolumn są problematyczne, ale poza tym to zadanie jest gotowe. –

Odpowiedz

0

Nie zapomnij, aby szukać w tak miejscu,

http://visualstudiogallery.msdn.microsoft.com/df3541c3-d833-4b65-b942-989e7ec74c87/

Po instalacji, po wybraniu „Utwórz bazę danych z modelu ... " pojawi się nowy kreator i możesz wybrać" Wygeneruj T-SQL migracji "

Kolejny sposobem jest użycie niestandardowego t4 do wygenerowania DbMigrationsConfiguration i DbContext z twojego modelu i nie musisz w ogóle uruchamiać Enable-Migration. Wystarczy uruchomić Add-Migracja i Update Database w Package Manager Console

http://blog.amusedia.com/2012/08/entity-framework-migration-with-model.html

+1

Zrobiłem wyszukiwania SO, ale jak wymienione w moim pytaniu używam VS2012 i EF5, z których żaden nie jest obsługiwany przez to narzędzie, niestety. – Kyle

+0

Nie ma problemu, szablony t4 są najlepszym sposobem. –

+0

Czy mógłbyś chyba wyjaśnić, w jaki sposób użyłbym szablonów T4, aby to osiągnąć? – Kyle

Powiązane problemy