🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Solución a error 'Table doesn't exist' en bases de datos de PrestaShop

Actualizado el 2 de abril de 2026

¡Hola! Soy tu técnico de soporte amigable. Si estás leyendo esto, seguramente te has encontrado con el temido mensaje "Table doesn't exist" en tu tienda PrestaShop. No te preocupes, es un error más común de lo que parece y, sobre todo, tiene solución. En esta guía extensa y paso a paso, te voy a explicar qué significa, por qué ocurre y, lo más importante, cómo reparar tu base de datos para que tu tienda vuelva a funcionar sin problemas. Vamos a ello.

¿Qué significa el error "Table doesn't exist" en PrestaShop?

Imagina que tu base de datos es una enorme biblioteca organizada con estanterías (tablas) llenas de libros (datos). El error "Table doesn't exist" es como si intentaras buscar un libro en una estantería que, de repente, ha desaparecido. En términos técnicos, PrestaShop intenta acceder a una tabla de MySQL (como ps_product o ps_customer) y el sistema le responde que esa tabla no está presente en la base de datos.

Esto puede ocurrir por varias razones:

  • Una migración o actualización fallida de PrestaShop o de un módulo.
  • Un corte de energía o un fallo del servidor mientras se escribía en la base de datos.
  • Eliminación accidental de tablas por un usuario o un script malicioso.
  • Problemas con el motor de almacenamiento (por ejemplo, tablas que se corrompen y pasan a estado "no existente").

[WARNING] Importante: No entres en pánico. Este error no significa que hayas perdido todos tus datos, solo que una o varias tablas específicas no están disponibles. Con las herramientas adecuadas, podemos recuperarlas.

Primeros pasos: identifica la tabla que falta

Antes de lanzarnos a reparar, necesitamos saber exactamente qué tabla está causando el problema. El mensaje de error en PrestaShop suele ser muy claro. Por ejemplo, si ves algo como:
Table 'tu_tienda.ps_product_comment' doesn't exist

Entonces la tabla problemática es ps_product_comment. Anota el nombre completo de la tabla (incluyendo el prefijo, que suele ser ps_).

¿Dónde ves este error?

  • En el front office (la tienda para los clientes): puede aparecer un mensaje blanco o un error 500.
  • En el back office (el panel de administración): al intentar acceder a un módulo, a productos o a clientes.
  • En los logs de error de tu servidor (accesible desde Syspanel, el panel de control de tu hosting, en el puerto 2106).

[TIP] Si no ves el nombre de la tabla en el error, revisa el archivo config/defines.inc.php de tu PrestaShop y cambia _PS_MODE_DEV_ a true. Esto mostrará errores detallados. No olvides volver a ponerlo en false después.

Solución 1: Reparar la base de datos desde Syspanel (la más fácil)

Si tu hosting utiliza Syspanel (recuerda, es el nombre que le damos a HestiaCP, y se accede por el puerto 2106), tienes una herramienta muy potente y sencilla: phpMyAdmin. Sigue estos pasos:

  1. Accede a Syspanel: Abre tu navegador y escribe https://tudominio.com:2106 (o la IP de tu servidor). Inicia sesión con tus credenciales de administrador.
  2. Busca la base de datos: Dentro de Syspanel, ve a la sección "Bases de datos". Verás una lista con todas las bases de datos de tu hosting. Haz clic en el nombre de la base de datos de tu PrestaShop (suele llamarse algo como tienda_prestashop o similar).
  3. Abre phpMyAdmin: En la misma página, verás un enlace o botón que dice "phpMyAdmin". Haz clic. Se abrirá una nueva pestaña con la interfaz de phpMyAdmin.
  4. Selecciona la base de datos: En el panel izquierdo de phpMyAdmin, verás una lista de bases de datos. Haz clic en la que corresponde a tu tienda.
  5. Reparar la tabla: En el panel derecho, aparecerán todas las tablas. Busca la tabla que falta (por ejemplo, ps_product_comment). Si no aparece, es que realmente no existe. Pero si aparece con un estado "error" o "in use", selecciona la casilla a su izquierda y, en el menú desplegable "Con seleccionados", elige "Reparar tabla". phpMyAdmin ejecutará un comando de reparación.
  6. Verifica: Después de la reparación, el estado debería cambiar a "ok". Vuelve a tu tienda y comprueba si el error ha desaparecido.

[INFO] Esta reparación funciona para tablas que están corruptas pero aún existen. Si la tabla ha sido eliminada por completo, necesitaremos el siguiente método.

Solución 2: Restaurar la tabla desde una copia de seguridad

Si la tabla ha desaparecido (no aparece en la lista de phpMyAdmin), la solución más rápida y segura es restaurarla desde una copia de seguridad reciente. Esto es fundamental: siempre debes tener copias de seguridad de tu base de datos.

Paso a paso para restaurar una tabla desde una copia de seguridad:

  1. Localiza tu copia de seguridad: Busca un archivo .sql que contenga un backup de tu base de datos. Si usas Syspanel, puedes generar backups automáticos desde la sección "Backups". También puedes tenerlos en tu ordenador o en un servicio en la nube.
  2. Abre phpMyAdmin (como en el paso anterior).
  3. Selecciona la base de datos.
  4. Importa solo la tabla que falta: Normalmente, un backup completo contiene todas las tablas. Para no sobreescribir datos actuales, lo mejor es extraer solo la tabla problemática.
    • Abre el archivo .sql con un editor de texto (como Notepad++ o Sublime Text). Es un archivo grande, pero puedes buscar el nombre de la tabla (por ejemplo, "ps_product_comment").
    • Copia todo el bloque desde CREATE TABLE IF NOT EXISTS hasta el ); final de esa tabla. También copia los INSERT INTO que vienen justo después (los datos de la tabla).
    • En phpMyAdmin, haz clic en la pestaña SQL (arriba).
    • Pega el bloque que copiaste y haz clic en Continuar.
  5. Verifica: La tabla debería aparecer ahora en la lista. Comprueba que los datos están correctos (por ejemplo, mirando algún producto o cliente).

[WARNING] Si no tienes una copia de seguridad, no desesperes. Aún hay esperanza con la siguiente solución, pero es más compleja.

Solución 3: Recrear la tabla desde el instalador de PrestaShop (avanzado)

Si no tienes copia de seguridad, puedes intentar recrear la tabla utilizando el instalador de PrestaShop. Esto es un poco más técnico, pero funciona.

Pasos:

  1. Descarga una copia limpia de PrestaShop de la misma versión que tienes instalada (por ejemplo, 1.7.8.10). Puedes obtenerla desde el sitio oficial.
  2. Extrae el archivo en tu ordenador.
  3. Busca el archivo de instalación: Dentro de la carpeta extraída, busca install/index.php. Pero no lo ejecutes aún.
  4. Localiza la estructura de la tabla: En la carpeta install/data/ encontrarás un archivo llamado db_structure.sql. Ábrelo con un editor de texto.
  5. Busca la tabla que falta: Usa la función de búsqueda (Ctrl+F) para encontrar el nombre de la tabla (por ejemplo, ps_product_comment). Copia el bloque completo de CREATE TABLE hasta el );.
  6. Ejecuta el SQL en phpMyAdmin: Ve a la pestaña SQL de tu base de datos (como antes) y pega el bloque. Haz clic en Continuar.
  7. Reindexa los datos: La tabla estará vacía. Para llenarla con datos, necesitarás ejecutar los módulos correspondientes (por ejemplo, si es una tabla de comentarios de productos, ve a Módulos > Comentarios de productos y haz clic en "Configurar" o "Reiniciar").

[TIP] Este método solo recrea la estructura, no los datos. Si la tabla contenía información importante (como pedidos o clientes), tendrás que ingresarla manualmente o recuperarla de otra forma.

Solución 4: Usar comandos de MySQL desde la terminal (para usuarios avanzados)

Si te sientes cómodo con la línea de comandos, puedes reparar o recrear tablas directamente desde el terminal de tu servidor. Esto es más rápido y potente.

Accede a MySQL:

  1. Conéctate a tu servidor por SSH (necesitarás las credenciales de root o de un usuario con permisos).
  2. Ejecuta: mysql -u tu_usuario -p
  3. Introduce la contraseña.

Reparar una tabla existente:

USE nombre_de_tu_base_de_datos;
REPAIR TABLE ps_product_comment;

Recrear una tabla desde un archivo SQL:

Si tienes el archivo .sql con la estructura de la tabla, puedes importarlo directamente:

USE nombre_de_tu_base_de_datos;
SOURCE /ruta/al/archivo.sql;

[WARNING] Ten mucho cuidado con los comandos en la terminal. Un error puede borrar toda la base de datos. Si no estás seguro, mejor usa phpMyAdmin.

Prevención: cómo evitar el error "Table doesn't exist" en el futuro

Como dice el refrán, más vale prevenir que curar. Aquí tienes algunos consejos para que este error no vuelva a aparecer:

  • Realiza copias de seguridad periódicas: Configura backups automáticos en Syspanel (en la sección "Backups") al menos una vez al día. Guarda también una copia externa (por ejemplo, en Google Drive o Dropbox).
  • Actualiza PrestaShop y los módulos con cuidado: Antes de actualizar, haz siempre una copia de seguridad completa (archivos y base de datos). Las actualizaciones fallidas son una de las causas principales de tablas perdidas.
  • Revisa los logs del servidor: Desde Syspanel (puerto 2106), puedes acceder a los logs de error. Si ves advertencias sobre tablas corruptas, actúa antes de que sea tarde.
  • Usa un hosting de calidad: Un buen proveedor de hosting (como el nuestro) ofrece servidores estables y herramientas de monitoreo que minimizan estos problemas.

FAQ: Preguntas frecuentes sobre el error "Table doesn't exist"

¿Por qué aparece este error después de una actualización de PrestaShop?

Durante una actualización, PrestaShop modifica la estructura de la base de datos. Si el proceso se interrumpe (por timeout, corte de conexión, etc.), algunas tablas pueden quedar a medio crear o eliminarse. Siempre es recomendable aumentar el tiempo de ejecución en el servidor antes de actualizar.

¿Puedo perder todos mis datos si no reparo la tabla?

No necesariamente. El error solo afecta a la funcionalidad que depende de esa tabla. Por ejemplo, si falta la tabla de ps_cart, los carritos de compra no funcionarán, pero los productos y clientes seguirán accesibles. Sin embargo, es importante repararlo cuanto antes para evitar problemas mayores.

¿Cómo sé si mi tabla está corrupta o eliminada?

En phpMyAdmin, si la tabla aparece en la lista pero con un estado "error" o "in use", está corrupta. Si no aparece en absoluto, ha sido eliminada. Puedes verificar ejecutando una consulta SQL: SHOW TABLES LIKE 'ps_product_comment';. Si no devuelve resultados, la tabla no existe.

¿El error "Table doesn't exist" puede ser un ataque de hackers?

En raras ocasiones, sí. Si notas que varias tablas han desaparecido de repente, podría ser un ataque de inyección SQL o un script malicioso. En ese caso, cambia todas las contraseñas (base de datos, FTP, administrador de PrestaShop) y revisa los archivos de tu tienda en busca de código sospechoso.

¿Necesito conocimientos de programación para solucionarlo?

No, con las soluciones 1 y 2 (Syspanel y phpMyAdmin) cualquier persona puede hacerlo siguiendo los pasos. Si no te sientes seguro, siempre puedes contactar con nuestro equipo de soporte técnico.

Conclusión: no temas al error "Table doesn't exist"

Como has visto, el error "Table doesn't exist" en PrestaShop es molesto pero totalmente reparable. Ya sea reparando la tabla desde phpMyAdmin, restaurándola desde una copia de seguridad o recreándola con el instalador, siempre hay una solución. La clave está en mantener la calma, identificar la tabla problemática y seguir los pasos adecuados.

Recuerda que en Syspanel (tu panel de control en el puerto 2106) tienes todas las herramientas necesarias para gestionar tu base de datos de forma segura. Y si en algún momento te sientes abrumado, no dudes en pedir ayuda a tu equipo de soporte técnico. ¡Estamos aquí para ayudarte!

Espero que esta guía te haya sido útil. Si tienes alguna otra duda, ya sabes dónde encontrarme. ¡Tu tienda PrestaShop volverá a funcionar en poco tiempo!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel