From 6b4137f09022bc67d7878c158aed39b1664c5fbb Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 14 Nov 2025 11:01:48 +0000 Subject: [PATCH] Fix: Migration timezone - Suppression et resync Google Calendar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- scripts/migrate-calendar-timezone.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/scripts/migrate-calendar-timezone.js b/scripts/migrate-calendar-timezone.js index c87517d..9f06518 100755 --- a/scripts/migrate-calendar-timezone.js +++ b/scripts/migrate-calendar-timezone.js @@ -1,6 +1,7 @@ #!/usr/bin/env node // Migration: Convertir calendar_events TIMESTAMP → TIMESTAMPTZ +// + Supprimer les données existantes et forcer resynchronisation const { Pool } = require('pg'); const DATABASE_URL = process.env.DATABASE_URL; @@ -48,6 +49,11 @@ async function migrate() { await client.query('BEGIN'); + // SUPPRIMER toutes les données existantes pour éviter les problèmes de timezone + console.log(' 🗑️ Suppression des événements existants (seront resynchronisés)'); + const deleteResult = await client.query('DELETE FROM calendar_events'); + console.log(` ✅ ${deleteResult.rowCount} événements supprimés`); + // Convertir start_time await client.query(` ALTER TABLE calendar_events @@ -81,8 +87,8 @@ async function migrate() { console.log('\n✅ Migration terminée avec succès!'); console.log(''); - console.log('📝 Note: Resynchronisez vos événements Google Calendar'); - console.log(' pour appliquer le nouveau format de timezone.'); + console.log('⚠️ IMPORTANT: Resynchronisez Google Calendar pour récupérer'); + console.log(' vos événements avec les bonnes heures.'); console.log(''); client.release();