Migración de bases de datos y ranuras de implementación de Azure

13

Estoy planeando enviar una nueva aplicación web a un Servicio de aplicaciones web de Azure (anteriormente, el sitio web de Azure). Me gustaría utilizar las ranuras de implementación para poder probar mi implementación antes de ponerla en producción. Todo eso está bien siempre y cuando no exista un cambio de esquema de base de datos. Pero si hay un cambio de esquema, no puedo tener dos versiones de software operando en la misma versión de db. Ya que estoy usando EF Migrations, el empuje a la ranura de almacenamiento resultaría instantáneamente en una actualización de la base de datos a la última versión.

Entonces, mi pregunta es si existe algún uso de las ranuras de implementación cuando se requiere una migración de la base de datos.

¿Cómo se hace para los grandes proveedores de SaaS? ¿Están realizando una migración de base de datos al instante con la nueva versión? Eso seguramente causaría algún tiempo de inactividad.

Solo puedo pensar en soluciones bastante complejas a este problema, ¿hay algo simple?

    
pregunta Sam7 01.04.2015 - 02:06

2 respuestas

2

Son posibles las liberaciones de tiempo de inactividad con las ranuras del Servicio de aplicaciones de Azure y una única base de datos compartida por Producción y Producción, pero debe asegurarse de que todos los cambios de la base de datos sean compatibles con versiones anteriores, de modo que las versiones actuales y nuevas de la aplicación web puedan ejecutarse simultáneamente en las ranuras de puesta en escena y producción.

Algunas reglas que aseguran que esto funcione:

  • Todas las nuevas columnas de la base de datos deben ser anulables o tener valores predeterminados
  • No se permite cambiar el nombre de las columnas
  • No está permitido eliminar columnas

Cuando necesita hacer cambios destructivos, como cambiar el nombre o eliminar columnas, necesita 2 versiones para hacer esto:

  1. La nueva versión de la aplicación web debería publicarse, lo que elimina la dependencia de las columnas renombradas / eliminadas
  2. Se realiza una versión adicional que realiza los cambios destructivos

Si bien esto suena un poco complicado, en la práctica es probable que no hagas cambios destructivos muy a menudo.

    
respondido por el Cocowalla 16.04.2018 - 10:44
0

¿has mirado los elementos de configuración específicos de la ranura? En Aplicación web / Configuración / Configuración de la aplicación, puede especificar la configuración de la aplicación web, pero también puede definir si solo se aplica a esta ranura.

Por lo tanto, podría tener una cadena de conexión específica para cada ranura y aplicar la migración en las ranuras de intercambio también.

    
respondido por el Owain Thomas 10.05.2016 - 14:11

Lea otras preguntas en las etiquetas