Migración de Django 1.4 USE_TZ, parte de la base de datos: ¿mejores prácticas?

La documentación de Django menciona que todos los datos deben convertirse a UTC cuando se cambia a USE_TZ=True. Ver: https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#other-databases

Este es un comentario bastante conciso. ¿Existen scripts/trucos disponibles para hacer esto "de una sola vez" y poder hacer fácilmente la misma conversión en desarrollo y producción?

Me imagino que esto no es algo que uno deba hacer en South, ya que la configuración USE_TZ se realiza a nivel de proyecto, mientras que las migraciones de South están vinculadas a las aplicaciones. Además, no estoy seguro de qué vista obtendría South a partir de los datos. Presumiblemente, South está reutilizando el ORM de Django, por lo que tratar de hacer algo a través de esa capa generaría resultados confusos y también dependería de si la configuración USE_TZ ya se ha cambiado a True. De hecho, esto podría decirse de cualquier manipulación de la base de datos que se enruta a través del ORM. ¿Correcto?

Muchas gracias,

Klaas

preguntado el 12 de junio de 12 a las 10:06

La misma pregunta hecha en stackoverflow.com/questions/17667527/… -

No es la misma pregunta. -

1 Respuestas

Cuando los documentos dicen "datos", se refiere a accesorios. Simplemente, necesita actualizar cualquier cadena de fecha y hora en sus dispositivos cuando se mueve a una base de datos que reconoce TZ. Por lo tanto, la sección más abajo que se refiere a los accesorios contiene la información adicional que está buscando.

Dicho esto, esto no es algo que deba cambiar de un lado a otro entre desarrollo y producción. A mucha gente le gusta usar SQLite para el desarrollo (por una buena razón), pero desafortunadamente actualmente no es compatible con TZ. Entonces, si necesita crear un sitio, realmente necesita usar una base de datos diferente en el desarrollo. Los datos conscientes de TZ son complicados y esto no es algo que deba probar por primera vez una vez que vaya a producción. Debería estar lidiando con él a medida que desarrolla, para saber que funcionará en producción.

Como resultado, el consejo de Django se centra en la migración única de datos ingenuos de TZ antiguos a datos conscientes de TZ, no en cómo puede cambiarlos de un lado a otro por capricho.

Respondido el 12 de junio de 12 a las 15:06

Dudo seriamente que los documentos digan "datos" y hablen de accesorios. La sección vinculada menciona específicamente el tipo de base de datos (y dado que los accesorios no viven en la base de datos, no veo cómo eso tendría sentido) Además, mi pregunta es cuál sería la mejor manera de hacer el cambio y su respuesta no 't (todavía) responder a eso. - Klaas van Schelven

La "mejor manera", como los documentos (en la sección "Accesorios") y yo indicamos, es ejecutar dumpdata y entonces loaddata, y cambie cualquier accesorio existente manualmente. Simplemente no hay realmente una buena manera de cambiar, tendrás que trabajar un poco. Período. - Chris Pratt

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.