Mam problem, na który nie mogłem znaleźć odpowiedzi przez Internet.EF 4.3 Migracja - jak stworzyć skrypt obniżający poziom zaawansowania?
Używam Migracji CodeFirst EF 4.3.1 z MsSQL.
Dodałem kilka migracji, a teraz chcę utworzyć skrypt do uaktualnienia/obniżenia wersji między dwiema migracjami.
do aktualizacji uruchomić następujące polecenie, które z powodzeniem odtwarza skrypt upgrade:
PM> Update-Database -Script -SourceMigration:"201205161144187_AddPostAbstract" -TargetMigration:"201205161203310_BlogLimitsAndTableRename"
Jednakże dla obniżenia uruchomić następujące polecenie, które nie powiedzie się z powodu następującego błędu:
PM> Update-Database -Script -SourceMigration:"201205161203310_BlogLimitsAndTableRename" -TargetMigration:"201205161144187_AddPostAbstract"
Scripting the downgrade between two specified migrations is not supported.
jakieś pomysły jak mogę wygenerować skrypt obniżania wersji?
Dzięki.
Ma to sens. Wyobraź sobie, że masz bazę danych w stanie 5, a spróbujesz uzyskać skrypt, który zostanie obniżony z 4 na 3. Wtedy baza danych może być łatwo uszkodzona. Albo wskazywanie go na db naprawdę w stanie 4, albo na lokalnie popchniętym do stanu 4, powoduje, że myślisz o tym przed wprowadzeniem nieodwracalnego bałaganu. OTOH może być obsługiwany przez przełącznik -Force lub duże czerwone ostrzeżenie. :) –
Myślałem o posiadaniu bazy danych w stanie 5, a teraz otrzymam skrypt do obniżenia go z 5 na 2. Migracja EF zmusza mnie do obniżenia wersji z 5 na 4, a następnie do obniżenia z 4 do 3, a następnie z 3 do 2, podczas gdy wszystko, co chcę, to stworzyć pojedynczy skrypt, który będzie już zawierał wszystkie te downgrade'y bez potrzeby ich wykonywania. (W przypadku aktualizacji można na przykład mieć bazę danych w stanie 5 i utworzyć skrypt aktualizacji z 2 na 5). – mayash
Lub możesz mieć bazę danych w stanie 5 i utworzyć skrypt aktualizacji od 2 do 4. – mayash