Commit Graph
3 Commits
Author SHA1 Message Date
Claude f3e1eb1f47 Fix: Timezone Europe/Paris + diagnostic complet calendrier
ANALYSE APPROFONDIE effectuée du problème de décalage horaire.

PROBLÈME IDENTIFIÉ:
La migration utilisait 'AT TIME ZONE UTC' au lieu de 'Europe/Paris'
ce qui causait une mauvaise interprétation des anciennes données.

CORRECTIONS APPLIQUÉES:

1. Migration timezone (scripts/migrate-calendar-timezone.js):
   - Ligne 61: UTC → Europe/Paris pour start_time
   - Ligne 69: UTC → Europe/Paris pour end_time
   - Les anciennes données en heure locale sont correctement converties

2. API calendar events (routes/calendar.routes.js):
   - Ajout de all_day dans le SELECT (ligne 348)
   - Permettra détection correcte événements toute la journée

3. Script de diagnostic (scripts/diagnose-calendar-timezone.js):
   - Vérifie timezone PostgreSQL
   - Affiche format des dates stockées
   - Compare UTC vs Europe/Paris
   - Détecte si TIMESTAMPTZ appliqué
   - Identifie événements avec mauvais timezone
   - Recommandations de correction

UTILISATION DIAGNOSTIC:
  docker exec notes-todo-app node scripts/diagnose-calendar-timezone.js

Le script affichera:
- Timezone serveur PostgreSQL
- Format des colonnes (TIMESTAMPTZ vs TIMESTAMP)
- Exemples de dates (brut, UTC, Paris)
- Format renvoyé par driver Node.js
- Recommandations si problème détecté

SOLUTION FINALE:
Après rebuild Docker:
1. La migration supprimera les anciens événements
2. Convertira avec bon timezone (Europe/Paris)
3. Resync Google Calendar récupérera bonnes dates
4. Les heures seront enfin correctes!

Fichiers modifiés:
- scripts/migrate-calendar-timezone.js (Europe/Paris)
- routes/calendar.routes.js (all_day ajouté)
- scripts/diagnose-calendar-timezone.js (nouveau)
2025-11-14 11:32:42 +00:00
Claude 6b4137f090 Fix: Migration timezone - Suppression et resync Google Calendar
Amélioration de la migration timezone pour éviter les données corrompues

PROBLÈME:
Les événements existants ont des heures incorrectes car:
- Stockés en TIMESTAMP (sans timezone)
- Driver PostgreSQL les interprète comme UTC
- Décalage d'1h lors de l'affichage

SOLUTION:
1. Supprimer TOUS les événements existants
2. Convertir les colonnes TIMESTAMP → TIMESTAMPTZ
3. Forcer resynchronisation depuis Google Calendar

Migration mise à jour:
- DELETE FROM calendar_events (supprime données corrompues)
- ALTER COLUMN → TIMESTAMPTZ
- Les nouvelles syncs utiliseront TIMESTAMPTZ
- Heures correctes garanties

APRÈS REBUILD:
1. Docker rebuild applique TIMESTAMPTZ
2. Migration supprime les anciens événements
3. Resynchronisez Google Calendar dans l'interface
4. Les heures seront correctes

scripts/migrate-calendar-timezone.js ligne 52-55
2025-11-14 11:01:48 +00:00
Claude 70bc3e0a5a Fix: Décalage horaire Google Calendar (+1h corrigé)
Correction du décalage de timezone de 1h dans Google Calendar

PROBLÈME:
- Les événements s'affichaient avec 1h de décalage
- Événement à 10h → affiché à 11h (ou 09h selon cas)

CAUSE:
- TIMESTAMP (sans timezone) dans PostgreSQL
- Google envoie dates avec timezone info
- PostgreSQL stockait sans timezone
- JavaScript réinterprétait avec timezone local
- = Double application du décalage

SOLUTION:
1. calendar_events: TIMESTAMP → TIMESTAMPTZ
   - start_time: TIMESTAMPTZ (conserve timezone)
   - end_time: TIMESTAMPTZ (conserve timezone)

2. Migration automatique:
   - scripts/migrate-calendar-timezone.js
   - Exécuté automatiquement au démarrage Docker
   - Convertit les données existantes
   - USING start_time AT TIME ZONE 'UTC'

3. Correction booléens all_day:
   - Ligne 433: isAllDay ? 1 : 0 → isAllDay
   - Ligne 451: isAllDay ? 1 : 0 → isAllDay

FICHIERS MODIFIÉS:
- config/database.js: TIMESTAMPTZ pour calendar_events
- routes/calendar.routes.js: Booléens corrigés
- docker-entrypoint.sh: Migration auto timezone
- migrations/002_calendar_timestamptz.sql: SQL manuel
- scripts/migrate-calendar-timezone.js: Script migration

DÉPLOIEMENT:
Au prochain rebuild Docker:
1. La table sera recréée avec TIMESTAMPTZ
2. Les événements existants seront migrés
3. Les nouvelles synchros utiliseront le bon format
4. Plus de décalage horaire!

Resynchronisez Google Calendar après déploiement
pour appliquer le nouveau format.
2025-11-14 10:52:41 +00:00