# Solution : Erreur "Table 'sessions' doesn't exist"

## Problème

L'erreur indique que la table `sessions` n'existe pas dans la base de données. C'est normal car les migrations Laravel n'ont pas encore été exécutées.

## Solution : Exécuter les migrations

Connectez-vous en SSH sur votre serveur et exécutez ces commandes :

### 1. Vérifier l'état des migrations

```bash
cd /chemin/vers/votre/projet
php artisan migrate:status
```

Cette commande vous montrera quelles migrations ont été exécutées et lesquelles sont en attente.

### 2. Exécuter les migrations

```bash
php artisan migrate --force
```

Cette commande va créer toutes les tables nécessaires, y compris :
- `users` - Utilisateurs
- `sessions` - Sessions (pour SESSION_DRIVER=database)
- `password_reset_tokens` - Tokens de réinitialisation
- `cache` - Cache
- `cache_locks` - Verrous de cache
- `jobs` - Jobs en file d'attente
- `job_batches` - Lots de jobs
- `failed_jobs` - Jobs échoués
- `bots` - Bots IA
- `sites` - Sites web
- `analyses` - Analyses de logs
- `logs_ia` - Entrées de logs détectées
- `personal_access_tokens` - Tokens d'API

### 3. Exécuter les seeders (optionnel mais recommandé)

Pour s'assurer que les 20 bots IA sont présents dans la base :

```bash
php artisan db:seed --class=BotSeeder
```

### 4. Vérifier que tout fonctionne

```bash
# Tester la connexion à la base de données
php artisan db:show

# Vérifier que la table sessions existe
php artisan tinker
>>> DB::table('sessions')->count()
```

## Si vous migrez depuis l'ancien projet

Si les tables `users`, `bots`, `sites`, `analyses`, `logs_ia` existent déjà :

1. **Ne supprimez pas les données existantes !**
2. Exécutez quand même `php artisan migrate --force`
3. Laravel créera uniquement les tables qui n'existent pas encore
4. Les tables existantes seront préservées

## Tables créées par Laravel

Les migrations créent ces tables supplémentaires nécessaires :

- `sessions` - **CRITIQUE** pour le fonctionnement de l'application
- `cache` - Pour le système de cache
- `cache_locks` - Pour les verrous de cache
- `jobs` - Pour les files d'attente
- `job_batches` - Pour les lots de jobs
- `failed_jobs` - Pour les jobs échoués
- `password_reset_tokens` - Pour la réinitialisation de mot de passe
- `personal_access_tokens` - Pour l'API (si utilisée)

## Alternative : Utiliser les sessions fichiers

Si vous ne voulez pas utiliser la table `sessions`, vous pouvez changer dans le `.env` :

```env
SESSION_DRIVER=file
```

Mais il est recommandé d'utiliser `database` pour de meilleures performances en production.

## Commandes complètes de déploiement

```bash
# 1. Aller dans le répertoire du projet
cd /chemin/vers/votre/projet

# 2. Vérifier la connexion à la base de données
php artisan db:show

# 3. Exécuter les migrations
php artisan migrate --force

# 4. Exécuter les seeders
php artisan db:seed --class=BotSeeder

# 5. Optimiser pour la production
php artisan config:cache
php artisan route:cache
php artisan view:cache

# 6. Vérifier que tout fonctionne
php artisan migrate:status
```

## Vérification finale

Après avoir exécuté les migrations, l'erreur devrait disparaître. Testez en accédant à votre site :

```
https://www.llmbots.fr
```

Si l'erreur persiste, vérifiez :
1. Les logs : `storage/logs/laravel.log`
2. Les permissions : `chmod -R 775 storage bootstrap/cache`
3. La configuration : `php artisan config:show database`

