Estoy planeando implementar una nueva aplicación web en un Servicio de aplicaciones web de Azure (antiguo sitio web de Azure). Me gustaría hacer uso de las ranuras de implementación para poder probar mi implementación antes de llevarla a producción. Eso está bien siempre que no se requiera un cambio de esquema de base de datos. Pero si hay un cambio de esquema, no puedo tener dos versiones de software que funcionen en la misma versión de DB. Dado que estoy usando EF Migraciones, el empuje hacia la ranura de almacenamiento instantáneamente daría como resultado una actualización de la base de datos a la última versión.
Entonces, mi pregunta es, ¿hay algún uso de ranuras de implementación cuando se requiere una migración db?
Cómo se hace para los grandes proveedores de SaaS. ¿Están realizando una migración de DB al instante con la nueva versión? Eso seguramente causaría algún tiempo de inactividad.
Solo puedo pensar en soluciones bastante complejas para este problema, ¿hay algo simple?
Respuestas:
Son posibles las versiones de tiempo de inactividad cero con las ranuras de Azure App Service y una única base de datos compartida por Staging and Production, pero debe asegurarse de que todos los cambios en 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 los espacios de puesta en escena y producción.
Algunas reglas que aseguran que esto funcione:
Cuando necesite hacer cambios destructivos, como renombrar o soltar columnas, necesita 2 versiones para hacer esto:
Si bien esto suena un poco complicado, en la práctica es probable que no realice cambios destructivos con mucha frecuencia.
fuente
¿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 definir si solo se aplica a este espacio.
Por lo tanto, podría tener una cadena de conexión específica de la ranura para su ranura provisional y aplicar también la migración en las ranuras de intercambio.
fuente