🛠️ Cómo solucionar el error «DBALException: platform version» en PrestaShop
Si al intentar entrar a tu tienda o al panel de administración de PrestaShop te encuentras con una pantalla en blanco y un mensaje de error similar a este (activa el DEBUG para verlo)
(4/4) DBALException
An exception occured while establishing a connection to figure out your platform version.
You can circumvent this by setting a 'server_version' configuration value
¡No te preocupes, tus datos están a salvo! Este error ocurre porque los servidores más modernos y rápidos de PremiumHosting utilizan la nueva versión de bases de datos MariaDB 11.4. Las versiones de PrestaShop un poco más antiguas no logran detectar esta versión automáticamente al intentar conectarse.
Tal como indica el propio error, la solución es simplemente «declarar» o escribir de forma manual la versión del servidor en los archivos de configuración de tu tienda. A continuación, te explicamos cómo hacerlo paso a paso desde tu panel de control.
📝 Paso 1: Actualizar el archivo de conexión (parameters.php)
Primero, vamos a asegurar que los datos básicos de conexión a la base de datos sean los correctos para nuestros nuevos servidores y apagaremos las variables de seguridad SSL vacías que suelen causar conflicto.
- Ingresa a tu panel de control (cPanel o DirectAdmin) y abre el Administrador de Archivos (File Manager).
- Navega hacia la carpeta donde está instalada tu tienda, que normalmente es
public_html - Entra a la carpeta
appy luego a la carpetaconfig. - Busca el archivo llamado
parameters.php, haz clic derecho sobre él y selecciona Edit (Editar). - En el código, busca la línea
'database_host'y cambia su valor para que sea'127.0.0.1'. - Verifica que la línea
'database_port'tenga el valor'3306'. - Agrega manualmente las siguientes variables SSL con el valor
nullofalsejusto debajo de tu contraseña, para que se vea similar a esto:
'database_host' => '127.0.0.1',
'database_port' => '3306',
'database_name' => 'tu_base_de_datos',
'database_user' => 'tu_usuario',
'database_password' => 'tu_contraseña',
'database_ssl_key' => null,
'database_ssl_cert' => null,
'database_ssl_ca' => null,
'database_ssl_verify_server_cert' => false,
Guarda los cambios en el archivo antes de cerrarlo.
⚙️ Paso 2: Declarar la versión del servidor en Doctrine (doctrine.yml)
Ahora vamos a hacer exactamente lo que nos pedía el mensaje de error: definir el valor server_version para que PrestaShop deje de intentar adivinarlo.
- Sin salir del Administrador de Archivos, en la misma carpeta
app/config/, busca el archivodoctrine.yml. - Haz clic derecho y selecciona Edit (Editar).
- Busca la sección que dice
default:y añade una nueva línea justo debajo con el textoserver_version: '10.6.12-MariaDB'. - Si ves una sección llamada
options:más abajo, añade un símbolo de numeral (#) al principio de las líneas que mencionansql_modeoMULTI_STATEMENTSpara desactivarlas temporalmente y evitar conflictos.
⚠️ ¡Importante! En este archivo, los espacios son vitales. Asegúrate de alinear tu nueva línea exactamente igual que las demás usando la barra espaciadora (no la tecla Tabulador).
Debería quedarte algo parecido a esto:
connections:
default:
server_version: '10.6.12-MariaDB'
# options:
# 1002: "SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''))"
Guarda los cambios y cierra el editor.
🧹 Paso 3: Limpiar la caché de PrestaShop
Por último, debemos borrar los archivos temporales para obligar a PrestaShop a leer los nuevos ajustes que acabamos de hacer.
- Vuelve a la carpeta principal de tu tienda (
public_html). - Entra a la carpeta
vary luego acache. - Elimina todo el contenido que encuentres dentro de las carpetas
prodydev(vacía estas carpetas, pero no borres las carpetas en sí).
public_html/var/cache/prod/*
public_html/var/cache/dev/*
🎉 ¡Todo listo!
Vuelve a visitar tu página web y recarga la pestaña en tu navegador. Tu tienda debería volver a funcionar con normalidad y conectarse a la base de datos. Si después de seguir estos pasos necesitas ayuda adicional, ¡no dudes en abrir un ticket de soporte! Nuestro equipo técnico en PremiumHosting estará encantado de ayudarte.