exec("SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci"); logMessage("Połączono z bazą danych"); // Wywołanie procedury archiwizacji $stmt = $pdo->prepare("CALL archive_old_matches()"); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); if ($result && isset($result['result'])) { logMessage("Wynik archiwizacji: " . $result['result']); } else { logMessage("Archiwizacja wykonana (brak rekordów do archiwizacji)"); } // Sprawdź statystyki $stmt = $pdo->query(" SELECT 'Active' as type, COUNT(*) as count FROM matches UNION ALL SELECT 'Archived' as type, COUNT(*) as count FROM matches_archive "); $stats = $stmt->fetchAll(PDO::FETCH_ASSOC); logMessage("Statystyki:"); foreach ($stats as $stat) { logMessage(" - {$stat['type']}: {$stat['count']} meczów"); } // Opcjonalnie: wyczyść stare logi (starsze niż 30 dni) $logFile = __DIR__ . '/archive_log.txt'; if (file_exists($logFile) && filesize($logFile) > 5242880) { // 5MB logMessage("Log przekroczył 5MB - rotacja logów"); $oldLog = __DIR__ . '/archive_log_old.txt'; if (file_exists($oldLog)) { unlink($oldLog); } rename($logFile, $oldLog); } logMessage("=== END Archiwizacja zakończona pomyślnie ===\n"); exit(0); // Sukces } catch (PDOException $e) { logMessage("ERROR: Błąd bazy danych - " . $e->getMessage()); exit(1); // Błąd } catch (Exception $e) { logMessage("ERROR: " . $e->getMessage()); exit(1); // Błąd } ?>