.net - como usar team foundation server
¿Pierde el código EF de primera migración cuando trabaja en diferentes sucursales de TFS? (2)
Estamos usando TFS y tenemos diferentes sucursales para nuestro Dev.
En la rama A hicimos una migración para cambiar el tamaño de una columna.
en la rama B hicimos una migración para agregar una nueva tabla. Esta rama no sabe sobre la modificación de la rama A !!
Ambas modificaciones se fusionan a la rama principal.
Cuando hago una base de datos actualizada, realiza la migración 2 pero al final me dice que hay cambios pendientes. Si hago una Add-Migration, crea lo mismo que la primera migración (en la rama A).
No se puede actualizar la base de datos para que coincida con el modelo actual porque hay cambios pendientes y la migración automática está deshabilitada. Escriba los cambios de modelo pendientes en una migración basada en código o habilite la migración automática. Establezca DbMigrationsConfiguration.AutomaticMigrationsEnabled en true para habilitar la migración automática. Puede usar el comando Agregar migración para escribir los cambios de modelo pendientes en una migración basada en código.
¿Se debe a que falta algo en el contenido de la propiedad Target de IMigrationMetadata de mi última migración, ya que no conocía la primera?
¿Es posible manejar migraciones en diferentes ramas de TFS?
Como una adición a la respuesta de Anders Abel y para aquellos de ustedes que tienen el problema al intentar regenerar los últimos metadatos de las migraciones que causan que EF cree una migración separada con un 1 adjunto.
Debe incluir el sello de fecha / hora completo.
P.ej
Si el nombre de archivo de su migración anterior es 201701011322_MakeChangesToPotatoTable
Luego debe incluir el nombre completo correctamente en el comando "Agregar migración".
ES DECIR
Add-Migration 201701011322_MakeChangesToPotatoTable
Un paso de migración de EF contiene un archivo de metadatos, que tiene una firma del modelo que es el resultado del paso de migración. El problema cuando se fusiona es que la firma de la migración realizada en la rama B no incluye lo que se hizo en la migración en la rama A. Mientras que las migraciones estén en las ramas, esto es correcto. Cuando la fusión se convierte en un error.
Para remediarlo, debe regenerar los metadatos de la última migración con
add-migration MyMigrationName
La ejecución add-migration
en una migración existente sin el parámetro -force
regenerará solo los metadatos.
Escribí un recorrido en profundidad de un escenario de fusión en las Migraciones de EF y una publicación de Conflicto de fusión en mi blog.