Comme un idiot, j'ai complètement négligé le paramètre de fuseau horaire quand j'ai d'abord construit une application qui collecte des données datetime. Ce n'était pas un problème alors parce que tout ce que je faisais était des comparaisons et des commandes de style "depuis-dans-le-temps". Maintenant, j'ai besoin de faire des rapports complets qui montrent le datetime réel et bien sûr, ils sont tous stockés à America/Chicago (le ridicule par défaut de Django).Changement de fuseau horaire sur un projet Django existant
Alors oui. J'ai une base de données de taille moyenne complète de ces dates qui sont incorrectes. Je veux changer settings.TIME_ZONE
à 'UTC'
mais cela n'aide pas mes données existantes. Quelle est la meilleure (lire: la plus simple, la plus rapide) pour convertir toutes les données du modèle en masse?
(Toutes les données sont à l'intérieur des deux derniers mois, donc il n'y a heureusement pas l'heure d'été à convertir)
Ce projet est actuellement sur SQLite, mais j'ai un autre projet sur PostgreSQL avec un problème similaire que je pourrais vouloir Faites de même avant que DST ne démarre ... Donc, idéalement, une réponse DB-agnostique.
Quelle base de données utilisez-vous, d'ailleurs? –
SQLite mais c'est tout à fait possible, je vais vouloir faire la même chose sur un autre projet que j'ai utilisé Postgres pour ... Quelque chose DB-agnostique serait idéal =) – Oli
SQLite stocke tout comme du texte. Certaines bases de données, cependant, stockent datetime en UTC en interne. Oracle, par exemple, traduit l'UTC dans la base de données en heure locale. Vous n'avez pas besoin de mettre à jour quoi que ce soit pour changer l'heure locale affichée. –