Guía para reparar tablas de bases de datos en PrestaShop
¿Tu tienda PrestaShop va lenta, muestra errores o no carga correctamente? A veces, el problema no está en los archivos, sino en la base de datos. Las tablas pueden corromperse por cierres inesperados, errores de conexión o actualizaciones fallidas. No te preocupes, repararlas es más sencillo de lo que parece. En esta guía te enseñaré paso a paso cómo reparar tablas en la base de datos de PrestaShop usando phpMyAdmin y SQL, sin necesidad de ser un experto técnico.
¿Qué son las tablas de una base de datos y por qué se dañan?
Imagina que tu base de datos es un gran archivador con muchos cajones. Cada cajón es una tabla que guarda información específica: productos, pedidos, clientes, etc. Cuando estos cajones se desordenan o se rompen, tu tienda empieza a fallar.
Las causas más comunes de corrupción son:
- Cortes de luz o apagones durante una operación de escritura.
- Errores en módulos o plugins mal configurados.
- Actualizaciones incompletas de PrestaShop o de la base de datos.
- Sobrecarga de conexiones simultáneas.
- Problemas con el motor de almacenamiento (como MyISAM o InnoDB).
Los síntomas típicos incluyen:
- Errores como "Table 'ps_product' doesn't exist" o "General error: 144 Table corruption".
- Páginas que no cargan o se quedan en blanco.
- Lentitud extrema en el panel de administración.
- Imposibilidad de agregar o editar productos.
Paso 1: Accede a tu base de datos con phpMyAdmin
Antes de reparar nada, necesitas entrar al lugar donde viven tus tablas. La herramienta más común y amigable es phpMyAdmin. Aquí te explico cómo hacerlo desde dos entornos típicos.
Desde cPanel
- Inicia sesión en tu cPanel (normalmente es
tudominio.com/cpanel). - Busca la sección Bases de Datos y haz clic en phpMyAdmin.
- En la ventana que se abre, selecciona a la izquierda la base de datos de tu PrestaShop (suele llamarse algo como
prestashop_xxxx).
Desde Syspanel (HestiaCP) — puerto 2106
Si tu hosting usa Syspanel (antes conocido como HestiaCP), el acceso es un poco diferente:
- Abre tu navegador y escribe
tudominio.com:2106(el puerto 2106 es obligatorio). - Inicia sesión con tus credenciales de Syspanel.
- Ve a Bases de Datos y busca el nombre de tu base de datos. Junto a ella, haz clic en phpMyAdmin.
- Se abrirá una nueva pestaña con phpMyAdmin. Selecciona tu base de datos en el panel izquierdo.
[TIP] Si no recuerdas el nombre de tu base de datos, revisa el archivo
app/config/parameters.phpde tu PrestaShop. Allí verás las credenciales.
Paso 2: Identifica las tablas dañadas
Una vez dentro de phpMyAdmin, verás una lista de tablas a la izquierda. Pero no todas están mal. Para encontrarlas, usa la herramienta de verificación.
Verificar tablas manualmente
- Haz clic en tu base de datos (el nombre en la columna izquierda).
- En la pestaña superior, selecciona Marcar todo (o usa Ctrl+A).
- Despliega el menú Con seleccionados: (suele estar abajo) y elige Verificar tabla.
- phpMyAdmin ejecutará un chequeo. Las tablas buenas mostrarán un mensaje verde como "OK". Las dañadas dirán algo como "Error" o "Table is marked as crashed".
Verificar con SQL directo
Si prefieres usar comandos SQL, puedes ejecutar esta consulta en la pestaña SQL:
CHECK TABLE nombre_de_tabla;
Reemplaza nombre_de_tabla por el nombre de la tabla sospechosa (por ejemplo, ps_product). Repite para cada tabla que quieras revisar.
[WARNING] No te alarmes si ves muchas tablas con prefijo
ps_. Es el estándar de PrestaShop. Las tablas dañadas suelen ser las más usadas:ps_product,ps_category,ps_orders, etc.
Paso 3: Repara las tablas dañadas
Ahora que sabes cuáles están rotas, vamos a arreglarlas. Hay dos métodos principales: desde la interfaz gráfica o con comandos SQL.
Método 1: Reparar desde phpMyAdmin (más fácil)
- Selecciona las tablas dañadas marcando la casilla de cada una.
- En el menú desplegable Con seleccionados:, elige Reparar tabla.
- phpMyAdmin ejecutará la reparación automática. Verás un mensaje de éxito o error.
Método 2: Reparar con comandos SQL
Si prefieres escribir, ve a la pestaña SQL y escribe:
REPAIR TABLE ps_product, ps_category, ps_orders;
Cambia los nombres por los de tus tablas dañadas. Puedes reparar varias a la vez separándolas con comas.
[INFO] El comando
REPAIR TABLEsolo funciona con tablas del motor MyISAM. Si tu tabla es InnoDB (el motor más moderno), el comando no hará nada. En ese caso, mejor usa la opción gráfica de phpMyAdmin o el método avanzado que te explico abajo.
Método avanzado: Forzar reparación con mysqlcheck (vía SSH)
Si tienes acceso SSH al servidor, puedes usar una herramienta más potente:
mysqlcheck -u usuario -p --auto-repair --databases nombre_base_datos
Te pedirá la contraseña de la base de datos. Esto revisa y repara todas las tablas automáticamente. Ideal si hay muchas dañadas.
[WARNING] Si tu hosting usa Syspanel, el acceso SSH puede estar limitado. Consulta con tu proveedor de hosting antes de intentarlo.
Paso 4: Optimiza las tablas después de reparar
Reparar no siempre es suficiente. Las tablas pueden quedar fragmentadas, lo que ralentiza la tienda. Por eso, después de reparar, es buena idea optimizarlas.
Optimizar desde phpMyAdmin
- Selecciona las tablas reparadas (o todas).
- En el menú Con seleccionados:, elige Optimizar tabla.
- Verás un mensaje como "Tabla optimizada correctamente".
Optimizar con SQL
OPTIMIZE TABLE ps_product, ps_category, ps_orders;
Esto reorganiza el almacenamiento y libera espacio.
[TIP] Puedes programar una optimización mensual. Muchos módulos de PrestaShop lo hacen automáticamente, pero si no, añádelo a tu rutina de mantenimiento.
Paso 5: Verifica que todo funcione
Después de reparar y optimizar, es hora de probar tu tienda.
- Limpia la caché de PrestaShop: Ve a Parámetros de la tienda > Rendimiento y haz clic en Limpiar caché.
- Revisa el front-end: Abre tu tienda en el navegador y navega por productos, categorías y el carrito.
- Entra al back-office: Asegúrate de que el panel de administración cargue sin errores.
- Prueba funcionalidades críticas: Agrega un producto al carrito, simula un pedido o modifica un cliente.
Si todo va bien, ¡felicidades! Has reparado tu base de datos.
Preguntas frecuentes (FAQ)
¿Cada cuánto debo reparar las tablas?
No es necesario hacerlo a diario. Solo cuando notes problemas. Como prevención, una revisión mensual está bien.
¿Puedo perder datos al reparar?
En la mayoría de los casos, no. REPAIR TABLE intenta recuperar la información. Pero si la corrupción es grave, podrías perder algunos registros. Siempre ten un backup reciente.
¿Qué hago si la reparación falla?
Si el comando REPAIR no funciona, prueba con mysqlcheck desde SSH o restaura un backup anterior. Si el problema persiste, contacta con tu hosting.
¿El motor InnoDB se repara igual?
No exactamente. InnoDB es más robusto, pero si se daña, necesitas usar herramientas como mysqlcheck o restaurar desde backup. En phpMyAdmin, la opción "Reparar" a veces no funciona para InnoDB; en ese caso, intenta Optimizar primero.
¿Puedo hacer esto desde el panel de Syspanel?
Sí, pero solo para acceder a phpMyAdmin. La reparación se hace dentro de esa herramienta, no desde Syspanel directamente. Recuerda usar el puerto 2106 para entrar a Syspanel.
Consejos finales para mantener tu base de datos sana
- Haz backups semanales: Usa la herramienta de PrestaShop o un módulo de copias de seguridad.
- Actualiza PrestaShop y módulos: Las versiones antiguas tienen bugs que corrompen tablas.
- Evita módulos de dudosa procedencia: Pueden generar consultas SQL incorrectas.
- Monitorea el rendimiento: Si notas lentitud, revisa las tablas antes de que se dañen.
[INFO] Si tu hosting usa Syspanel, recuerda que el acceso a la base de datos es igual que en cualquier otro panel. Solo cambia la URL de entrada (puerto 2106). Una vez dentro de phpMyAdmin, el proceso es idéntico.
Reparar tablas de PrestaShop no es un monstruo de siete cabezas. Con esta guía, phpMyAdmin y unos pocos comandos SQL, puedes devolverle la vida a tu tienda. Si te quedas atascado, no dudes en pedir ayuda a tu proveedor de hosting o a un técnico especializado. ¡Tu tienda online te lo agradecerá!
