[!CAUTION] Haz siempre una copia de seguridad antes de actualizar. Si algo sale mal, podrás restaurar tu instalación.
| Método | Pasos |
|---|---|
| phpMyAdmin (recomendado) | cPanel → phpMyAdmin → selecciona tu base de datos → pestaña Exportar → formato SQL → Continuar |
| cPanel Backup | cPanel → Backup → Download a MySQL Database Backup → selecciona tu base de datos |
Descarga por FTP al menos estos archivos y carpetas:
📦 Archivos a respaldar:
├── 📄 config/config.php ← tu configuración personalizada
├── 📂 storage/ ← logs, correos, caché, lock
│ ├── 📄 installed.lock
│ ├── 📂 logs/
│ └── 📂 mail/
└── 📄 VERSION ← para referencia de la versión actual
[!TIP] Guarda el backup en una carpeta con la fecha y versión actual, p.ej.
backup-v0.1.0-2026-04-28/.
porra-mundial-2026-vX.X.X.zip de la nueva versión.Conecta con tu cliente FTP y sube los archivos de la nueva versión sobre la instalación existente, sobreescribiendo los archivos del repositorio.
| Carpeta / Archivo | Acción | Motivo |
|---|---|---|
📂 app/ |
✅ Sobreescribir | Código actualizado |
📂 database/ |
✅ Sobreescribir | Nuevas migraciones SQL |
📂 public/ |
✅ Sobreescribir | Assets y front controller actualizados |
📂 vendor/ |
✅ Sobreescribir | Dependencias actualizadas |
📂 bin/ |
✅ Sobreescribir | Scripts auxiliares |
📄 .htaccess |
✅ Sobreescribir | Reglas de rewrite actualizadas |
📄 composer.json |
✅ Sobreescribir | Definición de dependencias |
📄 VERSION |
✅ Sobreescribir | Número de versión actualizado |
| Carpeta / Archivo | Acción | Motivo |
|---|---|---|
📄 config/config.php |
🚫 NO tocar | Tu configuración personalizada — la release no incluye este archivo |
📂 storage/ |
🚫 NO tocar | Tus logs, correos, caché y installed.lock |
[!IMPORTANT] Las releases nunca incluyen
config/config.phpni el contenido destorage/. Si subes la release tal cual, estos archivos no se sobreescribirán.
Tras subir los archivos, tienes dos opciones para aplicar la actualización:
Abre cualquier URL de tu sitio en el navegador:
| ### 1️⃣ | **🔍 Detección automática** Si hay migraciones pendientes, la aplicación te redirigirá automáticamente a `/install/upgrade`. |
| ### 2️⃣ | **🔐 Inicio de sesión** Inicia sesión con tu cuenta de **administrador**. Solo los administradores pueden ejecutar actualizaciones. |
| ### 3️⃣ | **✅ Confirmar la actualización** Revisa el resumen de migraciones pendientes y pulsa **Aplicar actualización**. El sistema: 1. Ejecuta **solo las migraciones pendientes** (las que no se han aplicado aún) 2. Actualiza el archivo `storage/installed.lock` con la nueva versión y la última migración aplicada 3. Te redirige al panel principal |
[!NOTE] Si no hay migraciones pendientes (p.ej. una release que sólo corrige bugs en PHP/CSS/JS), el sitio funcionará con normalidad sin necesidad de pasar por la pantalla de upgrade.
Si tienes acceso SSH al servidor (o ejecutas la aplicación en un entorno con terminal), puedes usar el script bin/upgrade.php:
php bin/upgrade.php
Ejemplo de salida:
╔══════════════════════════════════════════╗
║ Porra Mundial 2026 — Actualización ║
╚══════════════════════════════════════════╝
Versión instalada : 0.1.0
Versión nueva : 0.2.0
Última migración : 0003
Migraciones hasta : 0005
Migraciones pendientes:
• 0004_add_notifications.sql
• 0005_add_user_preferences.sql
¿Aplicar la actualización? [s/N] s
Aplicando migraciones de base de datos…
✓ 0004_add_notifications.sql
✓ 0005_add_user_preferences.sql
2 migración(es) aplicada(s).
✓ Actualización completada — versión 0.2.0.
php bin/upgrade.php --force
Ideal para scripts de despliegue automatizado o integración con pipelines CI/CD.
| Código | Significado |
|---|---|
0 |
Éxito — actualizaciones aplicadas o nada pendiente |
1 |
Error — la app no está instalada o falló una migración |
[!TIP] El script CLI es útil para automatizar actualizaciones en pipelines de despliegue. Por ejemplo, tras un
git pullo un despliegue FTP automático, basta con ejecutarphp bin/upgrade.php --forcepara aplicar las migraciones pendientes.
Tras completar el proceso, verifica que todo funciona:
| Comprobación | Cómo |
|---|---|
| 🌐 Página principal carga | Abre tu dominio en el navegador |
| 🔐 Login funciona | Inicia sesión con tu cuenta |
| 📋 Panel de admin accesible | Ve al panel de administración |
| 📄 Versión actualizada | Comprueba que el archivo VERSION muestra el nuevo número |
[!TIP] Si usas caché del navegador, haz un hard refresh (
Ctrl + Shift + RoCmd + Shift + R) para cargar los assets actualizados.
Si algo sale mal durante o después de la actualización:
| ### 1️⃣ | **📁 Restaurar archivos** Sube por FTP los archivos de la versión anterior (del backup que hiciste), asegurándote de incluir: - `config/config.php` - `storage/installed.lock` - Todo el código de la versión anterior |
| ### 2️⃣ | **🗄️ Restaurar la base de datos** Desde phpMyAdmin: 1. Selecciona tu base de datos 2. Ve a la pestaña **Importar** 3. Sube el archivo `.sql` del backup 4. Marca la opción para eliminar tablas existentes si es necesario |
| ### 3️⃣ | **✅ Verificar** Abre tu dominio y comprueba que todo funciona con la versión anterior. |
[!WARNING] El rollback de base de datos reemplaza todos los datos al estado del backup. Cualquier dato introducido después del backup se perderá (usuarios nuevos, apuestas, etc.).