Azure + EF 6 - Hacer que las primeras migraciones de código funcionen

asp.net-mvc asp.net-mvc-5 azure entity-framework entity-framework-6

Pregunta

Estoy usando EF 6 (código primero con migraciones) para el proyecto MVC 5. En mi máquina local de DEV todo funciona bien.

Pero cuando implemento mi proyecto en Azure, aparece el siguiente error cuando mi aplicación intenta interactuar con la base de datos:

Migrations is enabled for context 'UtilitiesContext' but the database does not exist or
contains no mapped tables. Use Migrations to create the database and its tables, for
example by running the 'Update-Database' command from the Package Manager Console.

Tengo mi código relacionado con EF en Utilities.Data assembly y mi proyecto MVC está en Utilities.Web assembly.

Aquí está mi código para su referencia:

UtilitiesContext.cs

Migrations is enabled for context 'UtilitiesContext' but the database does not exist or
contains no mapped tables. Use Migrations to create the database and its tables, for
example by running the 'Update-Database' command from the Package Manager Console.

Configuración.cs

Migrations is enabled for context 'UtilitiesContext' but the database does not exist or
contains no mapped tables. Use Migrations to create the database and its tables, for
example by running the 'Update-Database' command from the Package Manager Console.

Settings.cs

Migrations is enabled for context 'UtilitiesContext' but the database does not exist or
contains no mapped tables. Use Migrations to create the database and its tables, for
example by running the 'Update-Database' command from the Package Manager Console.

Y lo tengo definido en la sección App Settings la App Settings para la pestaña Configuration :

Clave: DB.ConnectionString

Valor: Fuente de datos = tcp: host.database.windows.net, 1433; Catálogo inicial = Utilidades; Id. De usuario = usuario @ servidor; Contraseña = pwd;

Respuesta popular

Parece que el problema que está experimentando es que implementó su aplicación en Azure, pero la base de datos a la que intenta dirigirse aún no existe.

La mejor solución para el código de producción es ejecutar el siguiente comando desde la consola del administrador de paquetes en su máquina local, esto generará un script sql que puede ejecutar en su base de datos de producción para actualizarlo con su aplicación.

PM> Update-Database -script -sourceMigration 0

Alternativamente, si solo desea probar en azul, el inicializador MigrateDatabaseToLatestVersion hará lo que necesita y se asegurará de que su base de datos esté actualizada cada vez que se inicie su aplicación. El uso de inicializadores generalmente no se recomienda para el código de producción porque alterar su base de datos de producción es algo que debe hacerse con mucho cuidado.

Esta publicación de blog es un poco antigua, pero hace un buen trabajo al describir tanto los inicializadores como las migraciones.




Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué