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
This commit is contained in:
Claude committed 2025-11-14 11:01:48 +00:00
1 parent 70bc3e0a5a
commit 6b4137f090
1 file changed
+8 -2
+8 -2
View File
@@ -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();