que first code ef-code-first code-first code-first-migrations

ef-code-first - first - add-migration



Primero codificar migración con cadenas de conexión (2)

En el tipo de consola del administrador de paquetes:

Get-Help Update-Database

Parte relevante:

Update-Database [-SourceMigration <String>] [-TargetMigration <String>] [-Script] [-Force] [-ProjectName <String>] [-StartUpProjectName <String>] [-ConfigurationTypeName <String>] [-ConnectionStringName <String>] [<Com monParameters>]

Entonces puedes hacer una Update-Database -ConnectionStringName "MyConnectionString" y debería funcionar como un amuleto.

También tiene un inicializador de base de datos MigrateDatabaseToLatestVersion , si lo configura (a través de Database.SetInitializer() ), cuando despliega su aplicación en producción con la cadena de conexión adecuada, en el primer acceso a db debe migrar automágicamente su base de datos a la última versión.

Sugiero precaución, siempre copias de seguridad de las cosas.

Actualizar

Los recientes comentarios de @Alexy Strakh engendraron otro argumento que vale la pena poner en la respuesta.

Configuración adecuada de un sistema de implementación utilizando Code First Migrations, con 2 ConnectionStrings.

  1. Defina sus cadenas de conexión en web.config (prod y dev), con contraseñas predeterminadas
  2. Haga que el sistema de configuración de su aplicación conozca las configuraciones de conexión de prod y dev, opcionalmente compile pruebas unitarias para asegurarse de elegir el correcto *
  3. Emplea la transformación de archivos de configuración y haz que transforme tu web.config en uno con valores de producción
  4. Implementa tu paquete en producción ( esta debería ser la forma más innovadora )

Se supone que no debe interactuar con el entorno de producción desde su cuadro de desarrollo, pero si realmente necesita hacerlo, entonces conviértalo en una solución temporal que debe revertirse tan pronto como haya terminado.

Otra opción es simplemente usar Web.Debug.config y Web.Release.config y tener una plantilla central para el web.config principal (que sería el único que registrarías en tu control de origen).

Solo asegúrate de nunca verificar las contraseñas de producción o desarrollo personal (si hay alguna).

* Puede usar el símbolo DEBUG para verificar cómo se está ejecutando la aplicación.

Así que he logrado ejecutar Code First y funciona muy bien.

Como todavía estoy desarrollando la aplicación, la estructura de la base de datos no está finalizada, por lo que debo implementar las migraciones.

Seguí la publicación oficial del blog y conseguí que funcionara el comando Actualizar base de datos.

Sin embargo, esto solo actualiza la versión SQLExpress de la base de datos. La versión de producción de la base de datos está en Azure y especifico la cadena de conexión en tiempo de ejecución, por lo que el comando Actualizar-Base de datos no funciona en eso.

Entonces mi pregunta final es: ¿cómo aplico migraciones automáticas a la base de datos de producción cuya cadena de conexión se especifica en tiempo de ejecución?