Nous avons un site Web basé sur Django assez simple pour effectuer des opérations CRUD. J'ai fait du test et du développement en local, puis j'ai vérifié les versions et les changements de schémas de base de données sur le serveur live une fois que les tests sont terminés. Nous avons récemment rencontré un problème lors de la publication de certains types de modifications. Imaginez la séquence des événements suivants:Comment mettre à jour en toute sécurité un site Web en direct
- L'utilisateur ouvre un formulaire web
- site est mis à jour pour exiger nouveau champ sur ce formulaire
- utilisateur soumet le formulaire qu'ils ont travaillé sur
- Server renvoie une erreur car il s'attendait à recevoir le nouveau champ qui a été ajouté à l'étape 2
Comment d'autres sites traitent-ils ces types de problèmes? Mes idées:
- Mettez le site hors ligne pendant les mises à jour. Cela ne résout pas vraiment le problème, car un utilisateur peut avoir un formulaire Web ouvert pendant une période de temps infinie avant de le soumettre, mais après un certain laps de temps, il est peu probable que quelqu'un soumette le formulaire.
- Faire des mises à jour automatiques à des temps de trafic très faibles. Encore une fois cela ne résout pas vraiment le problème, mais notre site n'est pas très populaire et si nous avons fait une mise à jour à 03h00, je doute qu'il y aurait beaucoup d'utilisateurs. Une préoccupation avec cette technique est les mises à jour automatiques qui échouent.
- La gestion des versions consiste à formater le formulaire afin que le serveur reconnaisse qu'un ancien formulaire est soumis et offre une réponse plus conviviale. Y a-t-il des outils automatisés qui pourraient aider à cela?
Pensées?
Est-ce que le problème - l'utilisateur soumet le formulaire pendant la mise à niveau - assez commun pour se tordre les mains? Ou est-ce un problème hypothétique "pourrait arriver un jour"? –
@ S.Lott, nous ne serions pas de bons programmeurs si nous ne nous inquiétions pas des cas de coin. –
Je pense que la vraie question est "Qu'est-ce qu'un bon moyen de mettre à niveau un site web en direct?" – winsmith