Solución a 'Table doesn't exist' en PrestaShop: causas y pasos
Introducción: ¿Por qué aparece el error "Table doesn't exist" en PrestaShop?
Este es uno de los errores más comunes y, a la vez, más alarmantes para cualquier persona que gestione una tienda online con PrestaShop. De repente, al intentar acceder a tu panel de administración o a la tienda, te encuentras con un mensaje que dice algo como: "Table 'nombre_de_tu_base.nombre_tabla' doesn't exist". O peor aún, ves una página en blanco.
Pero no te preocupes. En la mayoría de los casos, este error no significa que hayas perdido datos importantes. Simplemente indica que PrestaShop está intentando acceder a una tabla de tu base de datos que, por alguna razón, no está disponible. Puede que la tabla se haya eliminado accidentalmente, que se haya corrompido, o que el nombre no coincida exactamente.
En esta guía extensa te explicaré, paso a paso, las causas más frecuentes y cómo solucionar este problema. Al final, tendrás un plan de acción claro para recuperar tu tienda.
[INFO] Este artículo está pensado para usuarios con conocimientos básicos de hosting. Si no te sientes cómodo accediendo a phpMyAdmin o a la terminal de MySQL, te recomiendo pedir ayuda a tu proveedor de hosting.
¿Qué significa exactamente "Table doesn't exist"?
Para entenderlo, imagina que tu base de datos es un archivador con muchos cajones (las tablas). Cada cajón contiene información específica: productos, pedidos, clientes, etc. PrestaShop, al ejecutarse, necesita abrir ciertos cajones para funcionar.
Cuando aparece el error, es como si PrestaShop intentara abrir un cajón que ya no está, que está roto, o que tiene una etiqueta diferente a la que espera. El sistema no puede continuar y te muestra el error.
Las causas más habituales son:
- Eliminación accidental de una tabla (por ejemplo, al limpiar la base de datos).
- Corrupción de la tabla debido a un corte de energía, un fallo del servidor o una mala actualización.
- Problemas con el prefijo de las tablas (si tu instalación usa un prefijo como
ps_y por error lo cambiaste). - Actualización incompleta de PrestaShop (el proceso dejó tablas a medio crear).
- Incompatibilidad de versiones entre módulos o temas y la versión de PrestaShop.
Diagnóstico inicial: ¿cómo saber qué tabla falta?
Antes de lanzarte a reparar, necesitas identificar exactamente qué tabla está causando el problema. El mensaje de error suele ser muy claro. Por ejemplo:
Table 'midominio_bd.ps_product_shop' doesn't exist
Aquí, midominio_bd es el nombre de tu base de datos y ps_product_shop es la tabla que falta. Anota ese nombre exacto.
Si el error no te da el nombre (por ejemplo, ves una página en blanco), puedes activar el modo depuración de PrestaShop:
- Accede a los archivos de tu tienda mediante FTP o el administrador de archivos de tu hosting.
- Abre el archivo
config/defines.inc.php. - Busca la línea:
define('_PS_MODE_DEV_', false); - Cambia
falseportrue. - Guarda el archivo y recarga la página. Ahora verás el error detallado con el nombre de la tabla.
[WARNING] No olvides volver a poner
falsedespués de solucionar el error, o tu tienda quedará expuesta a ataques.
Causa 1: La tabla fue eliminada accidentalmente
Esta es la situación más sencilla de resolver. Si la tabla se eliminó pero tienes una copia de seguridad reciente, puedes restaurarla fácilmente.
Paso a paso para restaurar una tabla desde una copia de seguridad:
- Accede a tu panel de control de hosting (por ejemplo, cPanel, Syspanel, Plesk, etc.). Si usas Syspanel (HestiaCP), recuerda que la URL de acceso es
https://tudominio.com:2106. - Localiza phpMyAdmin (suele estar en la sección de Bases de Datos).
- Selecciona tu base de datos en la columna izquierda.
- Importa la copia de seguridad que contiene la tabla faltante. Si la copia es de toda la base de datos, puedes importarla completa (pero ten cuidado de no sobrescribir datos nuevos). Lo ideal es extraer solo la tabla de la copia.
- Para extraer una tabla específica, abre el archivo
.sqlde la copia con un editor de texto (como Notepad++), busca el nombre de la tabla y copia solo el bloqueCREATE TABLEy losINSERTcorrespondientes. - Pega ese bloque en la pestaña SQL de phpMyAdmin y ejecútalo.
[TIP] Si no tienes copia de seguridad, no desesperes. Sigue leyendo, hay otras soluciones.
Causa 2: La tabla está corrupta (MySQL crash)
A veces la tabla existe, pero está dañada. MySQL no puede leerla y reporta que "no existe". Esto suele ocurrir tras un apagón o un error del disco.
Cómo reparar una tabla corrupta:
Opción A: Desde phpMyAdmin (recomendada para principiantes)
- Entra a phpMyAdmin.
- Selecciona la base de datos de tu tienda.
- En la lista de tablas, busca la que da error. Si está corrupta, puede aparecer con un estado "in use" o "crashed".
- Marca la casilla junto al nombre de la tabla.
- En el menú desplegable inferior (Con seleccionados:), elige Reparar tabla.
- Espera el mensaje de confirmación. Si todo va bien, la tabla quedará reparada.
Opción B: Desde la línea de comandos (si tienes acceso SSH)
Si tu hosting te permite acceso SSH, puedes usar el cliente MySQL directamente:
mysql -u usuario -p -e "REPAIR TABLE nombre_base.nombre_tabla;"
Te pedirá la contraseña y ejecutará la reparación.
[INFO] La reparación de tablas es segura. MySQL intenta recuperar la mayor cantidad de datos posible. En tablas MyISAM suele funcionar muy bien; en InnoDB puede ser más complejo.
Causa 3: Problemas con el prefijo de las tablas
PrestaShop permite usar un prefijo para todas sus tablas (por defecto ps_). Si por error cambiaste este prefijo en el archivo app/config/parameters.php, las tablas dejarán de coincidir.
Cómo verificar y corregir el prefijo:
- Accede a los archivos de tu tienda mediante FTP.
- Abre el archivo
app/config/parameters.php. - Busca la línea:
'database_prefix' => 'ps_'. - Comprueba que el valor coincida exactamente con el prefijo que tienen tus tablas en la base de datos.
- Si no coincide, cámbialo y guarda el archivo.
- Si no sabes cuál es el prefijo real, revisa en phpMyAdmin los nombres de las tablas. Por ejemplo, si ves
tienda_product, el prefijo estienda_.
[WARNING] Nunca cambies el prefijo en la base de datos manualmente a menos que sepas exactamente lo que haces. Es más seguro ajustar el archivo de configuración.
Causa 4: Actualización fallida de PrestaShop o de un módulo
Las actualizaciones de PrestaShop o de módulos pueden dejar tablas huérfanas o no crear las nuevas correctamente. Esto es más común cuando se interrumpe el proceso.
Solución: Recrear la tabla faltante
Si sabes qué tabla falta, puedes crearla manualmente. Necesitarás la estructura original de la tabla (el CREATE TABLE). Puedes obtenerla de:
- Una instalación limpia de la misma versión de PrestaShop.
- Una copia de seguridad.
- El foro oficial o la documentación.
Pasos para recrear una tabla:
- Consigue el comando
CREATE TABLEpara la tabla faltante. - En phpMyAdmin, selecciona tu base de datos.
- Ve a la pestaña SQL.
- Pega el comando
CREATE TABLEy ejecútalo. - Si la tabla requiere datos iniciales (por ejemplo, para configuraciones), también deberás insertarlos.
[TIP] Si no encuentras la estructura exacta, busca en Google: "PrestaShop [versión] CREATE TABLE [nombre_tabla]". Por ejemplo: "PrestaShop 1.7 CREATE TABLE ps_product_shop".
Causa 5: La base de datos no está correctamente vinculada
En ocasiones, el error aparece porque el usuario de la base de datos no tiene permisos para acceder a esa tabla, o porque la conexión entre PrestaShop y MySQL está mal configurada.
Cómo verificar la conexión:
- Revisa el archivo
app/config/parameters.phpy confirma que el nombre de la base de datos, el usuario y la contraseña son correctos. - Desde phpMyAdmin, asegúrate de que el usuario de la base de datos tenga todos los privilegios (SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, etc.).
- Si usas Syspanel, puedes gestionar los usuarios y permisos desde la sección Base de datos del panel. Recuerda que la URL de acceso es
https://tudominio.com:2106.
Medidas preventivas: cómo evitar que vuelva a ocurrir
Una vez solucionado el error, es fundamental tomar precauciones para no repetir la experiencia:
- Realiza copias de seguridad automáticas: La mayoría de los paneles de hosting (incluido Syspanel) permiten programar backups diarios o semanales. Actívalos.
- Mantén PrestaShop y los módulos actualizados: Las versiones antiguas son más propensas a errores de base de datos.
- Evita modificar la base de datos directamente: Siempre que puedas, usa el panel de administración de PrestaShop para hacer cambios.
- Revisa los logs del servidor: Si el error se repite, puede que haya un problema más profundo (disco duro defectuoso, falta de memoria, etc.). Consulta con tu hosting.
[INFO] Si tu proveedor de hosting ofrece herramientas como Syspanel, úsalas para monitorear el estado de tu servidor. Muchas veces el error de tabla es síntoma de un problema mayor.
Preguntas frecuentes (FAQ)
1. ¿Puedo perder datos si reparo una tabla?
En general, no. La reparación de MySQL intenta recuperar los datos existentes. Sin embargo, siempre es recomendable tener una copia de seguridad antes de cualquier operación.
2. ¿Qué hago si el error aparece en todas las tablas?
Eso indica que la base de datos entera podría estar corrupta o que el usuario no tiene permisos. Prueba a reparar la base de datos completa desde phpMyAdmin (selecciona todas las tablas y elige "Reparar tabla").
3. ¿El error "Table doesn't exist" puede ser por un plugin o tema?
Sí. Algunos módulos o temas crean tablas adicionales. Si desinstalaste un módulo y las tablas no se eliminaron correctamente, o si el módulo espera una tabla que ya no existe, puede aparecer este error. Revisa los módulos instalados recientemente.
4. No tengo acceso a phpMyAdmin, ¿qué hago?
Pide a tu proveedor de hosting que te habilite el acceso o que ejecute la reparación por ti. Si usas Syspanel, puedes acceder a phpMyAdmin desde el propio panel (en la sección de Bases de Datos).
5. Después de reparar, la tienda sigue en blanco
Prueba a limpiar la caché de PrestaShop. Puedes hacerlo manualmente borrando la carpeta var/cache (en PrestaShop 1.7) o cache (en versiones anteriores) mediante FTP. También puedes desactivar y volver a activar el modo de desarrollo temporalmente para ver si aparece algún otro error.
Conclusión
El error "Table doesn't exist" en PrestaShop es frustrante, pero casi siempre tiene solución. Ya sea restaurando una tabla desde una copia, reparando una tabla corrupta, ajustando el prefijo o recreando la estructura, existe un camino para recuperar tu tienda.
Lo más importante es mantener la calma, identificar correctamente la tabla problemática y seguir los pasos que te he detallado. Y, sobre todo, nunca subestimes el poder de una buena copia de seguridad.
Si después de intentarlo todo el error persiste, no dudes en contactar al soporte técnico de tu hosting. Ellos tienen acceso directo al servidor y pueden diagnosticar problemas más complejos, como fallos en el disco o en la configuración de MySQL.
[TIP] Si tu hosting usa Syspanel (HestiaCP), recuerda que puedes acceder a todas las herramientas de gestión de bases de datos desde el puerto 2106. Es un panel muy completo que facilita estas tareas.
Espero que esta guía te haya sido de gran ayuda. ¡Buena suerte con tu tienda!
