"; try { $db = \App\Core\Database::getInstance(); echo "Połączenie z bazą danych: OK{$nl}"; } catch (\Exception $e) { echo "BŁĄD połączenia z bazą: " . $e->getMessage() . $nl; echo "Sprawdź konfigurację w pliku .env{$nl}"; exit(1); } // Run all migrations in order $migrationFiles = glob(__DIR__ . '/migrations/*.sql'); sort($migrationFiles); foreach ($migrationFiles as $migrationFile) { $migrationName = basename($migrationFile); $sql = file_get_contents($migrationFile); $sqlClean = preg_replace('/--.*$/m', '', $sql); $statements = array_filter( array_map('trim', explode(';', $sqlClean)), fn($s) => !empty($s) ); foreach ($statements as $statement) { try { $db->exec($statement); } catch (\PDOException $e) { if (!str_contains($e->getMessage(), 'already exists') && !str_contains($e->getMessage(), 'Duplicate')) { echo "SQL Warning ({$migrationName}): " . $e->getMessage() . $nl; } } } echo "Migracja {$migrationName}: OK{$nl}"; } // Create admin user $username = 'admin'; $password = 'admin123'; // Change this! $hash = password_hash($password, PASSWORD_BCRYPT); try { $stmt = $db->prepare("SELECT id FROM users WHERE username = :u"); $stmt->execute(['u' => $username]); if ($stmt->fetch()) { echo "Użytkownik '{$username}' już istnieje.{$nl}"; } else { $stmt = $db->prepare("INSERT INTO users (username, password_hash) VALUES (:u, :p)"); $stmt->execute(['u' => $username, 'p' => $hash]); echo "Utworzono użytkownika: {$username} / {$password}{$nl}"; echo "WAŻNE: Zmień hasło po pierwszym logowaniu!{$nl}"; } } catch (\PDOException $e) { echo "Błąd tworzenia użytkownika: " . $e->getMessage() . $nl; } echo "{$nl}=== Instalacja zakończona ==={$nl}"; echo "USUŃ PLIK install.php po zakończeniu instalacji!{$nl}";