Nuestros investigadores estrellas han agotado sus provisiones de café, buscando diariamente por la solución, hasta que Amelia encontró la solución en Bitbucket por lo tanto en este momento la compartimos contigo.
Solución:
Quiero añadir una aclaración a este hilo:
Update-Database -TargetMigration:"name_of_migration"
Lo que está haciendo arriba es decir que desea revertir todas las migraciones HASTA que se quede con la migración especificada. Por lo tanto, si usa GET-MIGRATIONS y descubre que tiene A, B, C, D y E, al usar este comando retrocederá E y D para llegar a C:
Update-Database -TargetMigration:"C"
Además, a menos que alguien pueda comentar lo contrario, noté que puede usar un valor ordinal y el interruptor corto -Target (por lo tanto, -Target es lo mismo que -TargetMigration). Si desea revertir todas las migraciones y comenzar de nuevo, puede usar:
Update-Database -Target:0
0, arriba, revertiría incluso la PRIMERA migración (Este es un comando destructivo. ¡Asegúrate de saber lo que estás haciendo antes de usarlo!)–algo que no puede hacer si usa la sintaxis anterior que requiere el nombre de la migración de destino (¡el nombre de la migración 0 no existe antes de que se aplique una migración!). Entonces, en ese caso, debe usar el valor 0 (ordinal). Del mismo modo, si ha aplicado las migraciones A, B, C, D y E (en ese orden), el ordinal 1 debería hacer referencia a A, el ordinal 2 debería hacer referencia a B, y así sucesivamente. Entonces, para retroceder a B, podría usar:
Update-Database -TargetMigration:"B"
o
Update-Database -TargetMigration:2
Edición de octubre de 2019:
De acuerdo con esta respuesta relacionada en una pregunta similar, el comando correcto es -Target
para EF Core 1.1 mientras está -Migration
para EF Core 2.0.
A partir de EF 5.0, el enfoque que describe es la forma preferida. Asi que
PM> Update-Database -TargetMigration:"NameOfSecondToLastMigration"
o usando sus migraciones de ejemplo
PM> Update-Database -TargetMigration:"CategoryIdIsLong"
Una solución sería crear un script PS contenedor que automatice los pasos anteriores. Además, siéntase libre de crear una solicitud de función para esto, o mejor aún, intente implementarlo. https://github.com/dotnet/ef6
En EntityFrameworkCore:
Update-Database 20161012160749_AddedOrderToCourse
dónde 20161012160749_AddedOrderToCourse
es el nombre de la migración a la que desea revertir.
Comentarios y puntuaciones
Nos encantaría que puedieras recomendar esta reseña si te valió la pena.