28

En proyectos EF, ¿hay alguna práctica recomendada para establecer AutomaticMigrationsEnabled?AutomaticMigrationsEnabled ¿es falso o verdadero?

Más declaración:

En nuestro equipo después de modificar un modelo que generalmente se ejecuta "complemento de la migración" y "update-DATABSE" comandos en la consola de Administrador de paquetes. Este error se plantea cuando otros desarrolladores ejecutar el proyecto:

"No se puede quitar la base de datos, ya que está en uso"

Cada vez que esto suceda el primer modificador deben toda Check In proyecto y otros tienen que GET modificado objetos. ¡En muchos casos no deseamos controlar el modelo y la migración ya creados!

Esta situación es molesta, ¿hay alguna solución para este tipo de problemas. gracias de antemano.

Respuesta

41

Las migraciones automáticas hacen toda la magia por usted, pero no permiten versiones estrictas (no tiene una migración fija especial para cada versión). Sin un control de versiones estricto, no puede hacer un seguimiento de la versión de su base de datos y no puede hacer actualizaciones explícitas (no puede hacer ninguna degradación).

Si no tiene previsto utilizar el control de versiones donde necesita saber qué versión es la base de datos y si no planea utilizar la degradación, simplemente puede usar la migración automática.

"No se puede quitar la base de datos, ya que está en uso"

Parece que se está trabajando en la base de datos compartida = tapón de la demostración. Cada desarrollador debe usar su propia base de datos.

pero no desea consultar el modelo y la migración que ya se ha creado.

Esa es una buena práctica y si desea continuar con las migraciones basadas en código tendrá que seguirlo. Por cierto. existe una práctica llamada "integración continua": en la integración continua, debe obtener obtener inmediatamente después de que la confirmación se haya generado satisfactoriamente y pase las pruebas.

+0

thanks.Sí, estamos trabajando en una base de datos compartida. ¿Puede decirnos cómo podemos comenzar a utilizar nuestras propias bases de datos (texto, artículo, libros, ...CUALQUIER consejo será muy apreciado!) –

+4

¿Qué consejo estás buscando? Simplemente instale el servidor de base de datos localmente o use DB por desarrollador en el servidor compartido. En el primer caso, solo necesita cambiar 'Data Source' en la cadena de conexión a la máquina local y cada desarrollador tendrá su propia base de datos con el mismo nombre. El caso posterior requiere cadena de conexión por desarrollador, por lo que deberá asegurarse de que haya alguna política de check-in para evitar el almacenamiento de la cadena de conexión específica del desarrollador en el control de origen. –

+0

por lo que no necesitamos ninguna base de datos compartida, ¡de acuerdo! Configuro ** Fuente de datos = (local) ** –

10

Desde: http://msdn.microsoft.com/en-us/data/jj554735.aspx

Recomendación para el equipo entornos

Puede intercalar migraciones automáticas y basadas en código, pero esto es no se recomienda en escenarios de desarrollo del equipo. Si forma parte de un equipo de desarrolladores de que utilizan el control de origen, debe usar migraciones puramente automáticas o migraciones puramente basadas en código. Dadas las limitaciones de de las migraciones automáticas, recomendamos usar migraciones basadas en códigos en entornos de equipo.

Cuestiones relacionadas