Tenemos un sitio web basado en Django bastante simple para realizar operaciones CRUD. He estado haciendo pruebas y desarrollos localmente y luego revisando las versiones y los cambios en el esquema de la base de datos en el servidor en vivo una vez que se realizan las pruebas. Recientemente hemos tenido un problema al lanzar algunos tipos de cambios. Imagine la siguiente secuencia de eventos:Cómo actualizar con seguridad un sitio web en vivo
- usuario abre un formulario web
- sitio se actualiza para requerir nuevo campo en este formulario
- usuario envía el formulario que han estado trabajando en
- servidor devuelve un error porque esperaba recibir el nuevo campo que se agregó en el paso 2
¿Cómo manejan otros sitios este tipo de problemas? Mis ideas:
- Lleve el sitio fuera de línea mientras se realizan las actualizaciones. Esto realmente no resuelve el problema, porque un usuario puede tener un formulario web abierto durante un tiempo infinito antes de enviarlo, pero después de un cierto período de tiempo, es poco probable que alguien envíe el formulario.
- Realice actualizaciones automáticas en tiempos de tráfico muy bajos. Nuevamente, esto no soluciona realmente el problema, pero nuestro sitio no es tan popular y si hiciéramos una actualización a las 3: 00a dudo que hubiera muchos usuarios. Una preocupación con esta técnica son las actualizaciones automáticas que fallan.
- Formularios de control de versiones para que el servidor reconozca que se envía un formulario anterior y proporciona una respuesta más fácil de usar. ¿Hay herramientas automatizadas que podrían ayudar con esto?
¿Pensamientos?
es el problema - usuario envía forma durante la actualización - lo suficientemente comunes para exprimir sus manos sobre? ¿O es esto un problema hipotético de "podría suceder algún día"? –
@ S.Lott, no seríamos buenos programadores si no nos preocuparamos por los casos de esquina. –
Creo que la verdadera pregunta es "¿Cuál es una buena manera de actualizar un sitio web en vivo?" – winsmith