Mon application a une configuration basée sur xml. Il a aussi un fichier xsd. Avant le démarrage de mon application, xmllint vérifie la configuration par rapport au fichier xsd.Approche pour mettre à niveau la configuration de l'application
Avec la croissance de mon application, la structure de configuration a changé un peu. Maintenant, je dois faire face à ce problème: Lorsque je fournis une nouvelle version de mon application au client, je dois mettre à niveau la configuration existante.
Comment rendre cela facile et intelligent?
Mon idée est de construire un objet de configuration en utilisant python, puis de lire la configuration v1 à partir du fichier et de l'enregistrer en tant que v2. Mais si plus tard la structure est à nouveau modifiée, je dois construire un autre modèle d'objet de configuration.
Par exemple: l'ancienne configuration ressemble Mais dans la nouvelle configuration, il semble: La valeur à l'intérieur de foo peut être pertinente pour le client. En mettant à jour, je dois renommer la section foo en barre. –
stanleyxu2005
@stanley: Si vos modifications sont si importantes, vous devrez probablement faire des scripts de mise à niveau séparés pour chaque changement de version. Cependant, si les mises à niveau ne se produisent pas si souvent, ce n'est peut-être pas si grave. Cependant, vous voudrez certainement vous assurer que vous pouvez enchaîner les modifications de fichiers, car il est toujours possible qu'un utilisateur utilise une version du programme antérieure à la dernière version, de sorte que les modifications requises sont maintenant encore plus importantes. – JAB
Vraiment, cependant, si vous voulez garder le processus de mise à niveau aussi simple que possible, gardez la disposition du fichier de configuration aussi proche de l'original que vous le pouvez. Si, pour une raison quelconque, cela n'est pas possible (en raison d'un changement complet dans la façon dont votre programme fonctionne et stocke sa configuration), vous pourriez réduire l'effort requis de votre part en demandant au client de mise à niveau, mais je ne recommanderais pas vraiment cela, tout compte fait. – JAB