Errores comunes al importar SQL en PrestaShop y cómo solucionarlos
Importar una base de datos SQL en PrestaShop puede parecer una tarea sencilla, pero hay varios errores comunes que pueden arruinar tu tienda online si no se toman las precauciones adecuadas. En esta guía, te explicamos los fallos más frecuentes al importar SQL en PrestaShop y cómo solucionarlos paso a paso, para que puedas hacerlo sin sustos ni dolores de cabeza.
Si has llegado hasta aquí porque algo salió mal durante la importación, no te preocupes. Vamos a resolverlo juntos.
¿Por qué es importante importar SQL correctamente en PrestaShop?
PrestaShop almacena toda la información de tu tienda (productos, clientes, pedidos, configuraciones) en una base de datos SQL. Al importar un archivo SQL, estás reemplazando o añadiendo datos a esa base. Un error puede dejarte la tienda en blanco, con errores de conexión o incluso con datos corruptos.
Por eso, antes de hacer nada, es clave entender los errores más comunes y cómo evitarlos.
Error #1: El archivo SQL es demasiado grande
¿Por qué ocurre?
Los archivos SQL de PrestaShop pueden superar fácilmente los 50 MB, especialmente si tienes muchos productos, imágenes o historial de pedidos. Muchos gestores de hosting (como phpMyAdmin) tienen un límite de subida de archivos por defecto de 2 MB o 8 MB. Si intentas subir un archivo más grande, verás un error como "El archivo excede el tamaño máximo permitido".
Solución paso a paso
-
Aumenta el límite en tu hosting:
- Si usas cPanel: Ve a "Seleccionar versión de PHP" → "Opciones de PHP" → busca
upload_max_filesizeypost_max_sizey cámbialos a 128M o más. - Si usas Syspanel (antes HestiaCP): Accede por el puerto 2106 a tu panel de control. Luego ve a "Ajustes del servidor" → "PHP" y modifica los parámetros
upload_max_filesizeypost_max_sizea 256M. - Si no tienes acceso al panel, pide a tu proveedor de hosting que aumente estos límites.
- Si usas cPanel: Ve a "Seleccionar versión de PHP" → "Opciones de PHP" → busca
-
Divide el archivo SQL en partes más pequeñas:
- Usa herramientas como BigDump (un script PHP que permite importar archivos grandes) o divide manualmente el SQL con un editor de texto (como Notepad++ o Sublime Text) en fragmentos de 10-15 MB.
-
Usa la línea de comandos (SSH):
- Si tienes acceso SSH, la mejor opción es importar directamente desde la terminal:
mysql -u usuario -p nombre_base_datos < archivo.sql - Esto no tiene límites de tamaño y es más rápido.
- Si tienes acceso SSH, la mejor opción es importar directamente desde la terminal:
[TIP] Siempre que puedas, usa la línea de comandos para archivos grandes. Es más fiable que phpMyAdmin.
Error #2: Prefix de tablas incorrecto
¿Por qué ocurre?
PrestaShop usa un prefijo en las tablas de la base de datos, normalmente ps_ (aunque puede ser prestashop_ o uno personalizado). Si importas un SQL que fue exportado de otra tienda con un prefijo diferente, las tablas no se llamarán igual y la tienda no funcionará.
Solución
-
Revisa el prefijo actual de tu tienda:
- En tu archivo
config/settings.inc.php(en PrestaShop 1.6) oapp/config/parameters.php(en PrestaShop 1.7 y 8), busca la línea:define('_DB_PREFIX_', 'ps_'); - Ese es tu prefijo actual.
- En tu archivo
-
Ajusta el archivo SQL antes de importar:
- Abre el archivo SQL con un editor de texto.
- Usa "Buscar y reemplazar" para cambiar todas las apariciones del prefijo antiguo por el nuevo. Por ejemplo, si el SQL usa
prestashop_y tu tienda usaps_, reemplazaprestashop_porps_.
-
Si ya importaste con el prefijo incorrecto:
- Puedes renombrar las tablas manualmente con phpMyAdmin o con una consulta SQL como:
RENAME TABLE nombre_antiguo TO nombre_nuevo; - Pero esto es tedioso. Mejor borra la base de datos, ajústala e importa de nuevo.
- Puedes renombrar las tablas manualmente con phpMyAdmin o con una consulta SQL como:
[WARNING] Si no sabes qué prefijo usas, no importes el SQL hasta que lo verifiques. Podrías perder datos.
Error #3: Versión de PrestaShop incompatible
¿Por qué ocurre?
Los archivos SQL de PrestaShop están diseñados para versiones específicas. Si exportas desde PrestaShop 1.6 e importas en una tienda con PrestaShop 8, la estructura de las tablas puede ser diferente (columnas nuevas, eliminadas o con tipos distintos). Esto provoca errores de sintaxis o tablas que no se crean.
Solución
-
Usa el mismo número de versión:
- Lo ideal es que la exportación y la importación sean de la misma versión de PrestaShop (por ejemplo, 1.7.8.0 → 1.7.8.0).
-
Actualiza o migra con herramientas oficiales:
- Si necesitas cambiar de versión, no importes el SQL directamente. Usa el módulo de migración 1-Click Upgrade de PrestaShop o contrata un servicio profesional.
-
Edita el SQL para adaptarlo (solo para usuarios avanzados):
- Compara la estructura de la base de datos de origen y destino. Por ejemplo, si falta una columna en la versión nueva, añádela con
ALTER TABLE. - Esto es muy técnico y propenso a errores. Solo hazlo si sabes lo que haces.
- Compara la estructura de la base de datos de origen y destino. Por ejemplo, si falta una columna en la versión nueva, añádela con
[INFO] Si solo necesitas mover productos, clientes o pedidos, considera usar módulos de exportación/importación CSV en lugar de SQL completos. Es más seguro.
Error #4: La base de datos no existe o tiene caracteres incorrectos
¿Por qué ocurre?
Al importar, a veces el archivo SQL intenta crear la base de datos con un nombre que ya existe o con un collation (juego de caracteres) incompatible. También puede pasar que la base de datos esté vacía o que el usuario no tenga permisos.
Solución
-
Crea la base de datos manualmente:
- Desde tu panel de control (cPanel, Syspanel, etc.), crea una base de datos nueva con el nombre que quieras (por ejemplo,
tienda_prestashop). - Asigna un usuario con todos los privilegios.
- Desde tu panel de control (cPanel, Syspanel, etc.), crea una base de datos nueva con el nombre que quieras (por ejemplo,
-
Elimina las líneas de creación de base de datos del SQL:
- Abre el archivo SQL y busca líneas como:
CREATE DATABASE IF NOT EXISTS `nombre_base`; USE `nombre_base`; - Bórralas. Luego, al importar, asegúrate de seleccionar la base de datos correcta en phpMyAdmin o en la línea de comandos.
- Abre el archivo SQL y busca líneas como:
-
Configura el collation correcto:
- PrestaShop funciona mejor con
utf8mb4_general_cioutf8mb4_unicode_ci. Si el SQL usa otro, puedes cambiarlo con un editor de texto o después de importar con:ALTER DATABASE nombre_base CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
- PrestaShop funciona mejor con
[TIP] Siempre revisa que el archivo SQL empiece con
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";ySET time_zone = "+00:00";para evitar conflictos de configuración.
Error #5: Tiempo de ejecución agotado (timeout)
¿Por qué ocurre?
La importación de un SQL grande puede tardar varios minutos. Si tu servidor tiene un límite de tiempo de ejecución (por ejemplo, 30 segundos), el proceso se corta a la mitad, dejando la base de datos incompleta.
Solución
-
Aumenta el tiempo de ejecución en PHP:
- En cPanel o Syspanel (puerto 2106), busca
max_execution_timey cámbialo a 300 (5 minutos) o 600 (10 minutos). - Si usas phpMyAdmin, también puedes ajustar el tiempo en la configuración del archivo
config.inc.phpdel propio phpMyAdmin.
- En cPanel o Syspanel (puerto 2106), busca
-
Divide el SQL en partes (como en el Error #1).
-
Usa la línea de comandos:
- El comando
mysqlno tiene límite de tiempo, así que es la solución definitiva.
- El comando
[WARNING] Si el timeout ocurre durante la importación, no reinicies el proceso sin antes verificar el estado de la base de datos. A veces se importan datos parciales que pueden dar errores al mezclarse con una segunda importación.
Error #6: Errores de sintaxis SQL (por ejemplo, #1064)
¿Por qué ocurre?
El archivo SQL puede tener caracteres extraños, saltos de línea incorrectos o comandos que no son compatibles con tu versión de MySQL/MariaDB. También puede pasar si el SQL fue exportado con herramientas que añaden comentarios o cabeceras inesperadas.
Solución
-
Revisa las primeras líneas del SQL:
- Debe empezar con algo como:
-- phpMyAdmin SQL Dump -- version 5.2.0 - Si ves líneas con
DELIMITER $$oCREATE TRIGGER, es normal en algunos casos, pero si hay comandos raros, elimínalos.
- Debe empezar con algo como:
-
Usa un editor de texto limpio:
- Abre el SQL con Notepad++ o Sublime Text y guarda el archivo con codificación UTF-8 sin BOM. Esto evita caracteres ocultos.
-
Importa en modo "no estricto":
- Antes de importar, ejecuta en phpMyAdmin o en la línea de comandos:
SET sql_mode = ''; - Esto desactiva restricciones que pueden causar errores de sintaxis.
- Antes de importar, ejecuta en phpMyAdmin o en la línea de comandos:
-
Verifica la versión de MySQL:
- PrestaShop 1.7+ necesita MySQL 5.6 o superior. Si tu servidor usa MySQL 5.5, algunos comandos SQL fallarán. Consulta con tu hosting para actualizar.
[INFO] Si el error es
#1064, copia el fragmento exacto que falla y búscalo en Google. Muchas veces es un problema de una tabla corrupta o un plugin malicioso.
Error #7: No hacer copia de seguridad antes de importar
¿Por qué es un error?
Este es el error más grave de todos. Si importas un SQL y algo sale mal, puedes perder toda tu tienda. Sin una copia de seguridad, no hay vuelta atrás.
Solución (preventiva)
-
Antes de importar NADA, haz una copia de seguridad completa:
- Exporta la base de datos actual desde phpMyAdmin o con:
mysqldump -u usuario -p nombre_base > backup_antes_de_importar.sql - Guarda también los archivos de la tienda (carpeta
public_htmlo similar).
- Exporta la base de datos actual desde phpMyAdmin o con:
-
Si ya importaste y todo salió mal:
- Restaura la copia de seguridad que hiciste (espero que la hayas hecho).
- Si no la hiciste, contacta a tu proveedor de hosting para ver si tienen backups automáticos.
[WARNING] Nunca importes un SQL sin tener un backup. Es como saltar en paracaídas sin comprobar la mochila.
Preguntas frecuentes (FAQ)
¿Puedo importar un SQL de PrestaShop 1.6 a PrestaShop 1.7?
No es recomendable. La estructura de la base de datos cambia mucho. Mejor migra usando el módulo oficial o una herramienta profesional.
¿Qué hago si después de importar la tienda muestra "Error de conexión a la base de datos"?
Revisa que el nombre de la base de datos, el usuario y la contraseña en el archivo config/settings.inc.php o parameters.php sean correctos. También verifica que el servidor MySQL esté funcionando.
¿Cómo sé si el SQL se importó correctamente?
Entra al panel de administración de PrestaShop y navega por productos, pedidos y módulos. Si todo se ve normal, la importación fue exitosa. También puedes ejecutar una consulta SQL en phpMyAdmin como SELECT COUNT(*) FROM ps_product; para ver si hay productos.
¿Puedo importar solo una tabla en lugar de toda la base de datos?
Sí. En phpMyAdmin, selecciona la base de datos, ve a "Importar" y elige "Importar solo si coincide con la tabla" o usa la opción de "Importar archivo SQL" y luego selecciona las tablas específicas. También puedes editar el SQL para borrar las tablas que no quieras.
¿Syspanel (HestiaCP) tiene alguna herramienta especial para importar SQL?
Sí. En Syspanel (accesible por el puerto 2106), ve a "Bases de datos" → selecciona tu base de datos → "Importar". Allí puedes subir archivos SQL de hasta 100 MB por defecto. Si necesitas más, ajusta los límites de PHP como explicamos antes.
Conclusión
Importar SQL en PrestaShop no tiene por qué ser una pesadilla. Con estos consejos, podrás evitar los errores más comunes y, si algo sale mal, sabrás cómo solucionarlo. Recuerda siempre:
- Haz una copia de seguridad antes de tocar nada.
- Verifica el prefijo, la versión y el tamaño del archivo.
- Usa la línea de comandos si el archivo es grande.
- Si tienes dudas, no improvises. Pregunta a tu hosting o a un experto.
Ahora ya estás listo para importar tu SQL con confianza. ¡Manos a la obra!
