# CLI Commands - bin/

Scripts de línea de comandos para gestionar la base de datos del proyecto Monitoreo.

## Migraciones

### Mostrar estado de migraciones

```bash
php bin/migrate status
```

Muestra todas las migraciones ejecutadas, las pendientes y número de lote.

### Ejecutar todas las migraciones pendientes

```bash
php bin/migrate up
```

Crea la estructura completa de la base de datos.

### Revertir la última migración

```bash
php bin/migrate down
```

Revierte los cambios de la última migración ejecutada.

## Seeders

### Ejecutar todos los seeders

```bash
php bin/seed
```

Carga datos iniciales (roles, usuarios de prueba).

### Ejecutar un seeder específico

```bash
php bin/seed RolesSeeder
php bin/seed UsersSeeder
```

## Configuración

Los scripts leen la configuración de base de datos desde:

1. **Clase ConfigEnv** (`app/config/ConfigEnv.php`):
   ```php
   ConfigEnv::$DB_CONNECTIONS['klee']['host']
   ConfigEnv::$DB_CONNECTIONS['klee']['dbname']
   ConfigEnv::$DB_CONNECTIONS['klee']['user']
   ConfigEnv::$DB_CONNECTIONS['klee']['password']
   ```

2. **Variables de entorno** (alternativa):
   ```bash
   export DB_HOST=localhost
   export DB_NAME=klee_monitoreo
   export DB_USER=klee_user
   export DB_PASS=Klee321@
   php bin/migrate up
   ```

## Usuarios de prueba después de seeders

```
Usuario: admin      | Contraseña: admin123       | Rol: Administrador
Usuario: operador   | Contraseña: operador123    | Rol: Operador
```

## Requisitos

- PHP 7.4+
- Extensión PDO MySQL
- Acceso a la base de datos configurada

## Solución de problemas

### Error: "Class Config not found"

Asegúrate de que `app/config/Config.php` existe y se puede cargar.

### Error: "Database configuration not found"

- Verifica que `app/config/ConfigEnv.php` está correctamente configurado
- O configura las variables de entorno: `DB_HOST`, `DB_NAME`, `DB_USER`, `DB_PASS`

### Error: "table already exists"

Esto es normal si las migraciones ya se ejecutaron. Los cambios ya están aplicados.

## Mejores prácticas

1. **Hacer backup de BD**: Antes de ejecutar migraciones en producción, haz backup
2. **Ejecutar en orden**: Primero migraciones (`php bin/migrate up`), luego seeders (`php bin/seed`)
3. **Testing**: Prueba en entorno de desarrollo antes de producción
