Files
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
..

Migrations de base de données

Ce dossier contient les scripts de migration SQL pour mettre à jour le schéma de la base de données.

Utilisation

Méthode 1 : Exécuter dans le container Docker

# Copier le script dans le container
docker cp migrations/run-migrations.sh notes-todo-app:/app/

# Exécuter la migration
docker exec notes-todo-app sh /app/run-migrations.sh

Méthode 2 : Manuellement avec sqlite3

# Se connecter au container
docker exec -it notes-todo-app sh

# Exécuter la migration SQL
sqlite3 /app/data/notes.db < /path/to/migration.sql

Méthode 3 : Recréer la base de données (⚠️ perte de données)

docker-compose down -v
docker-compose up -d --build

Liste des migrations

  • 001_add_image_filename.sql : Ajoute la colonne image_filename à la table notes