Error Table _shop_url doesn't exist en el Staging de PrestaShop

Si cuando importas una web de PrestaShop al Staging te da error 500 y habilitas el modo debug y ves un error como este:


[PrestaShopDatabaseException]

Table '_shop_url' doesn't exist<br /><br /><pre>SELECT s.id_shop



Esto significa que la tabla de PrestaShop donde se configura las urls de la tienda no se puede importar porque contiene algún tipo de error.


Deberás revisar la tabla ps_shop_url en tu PrestaShop de origen, exportarla desde PhpMyAdmin (solo esa tabla) y ver por qué da error.


En este ejemplo, al exportar la tabla y cambiar las urls por las urls del servidor de staging (xxxx.n01.pruebas.cloud) e intentar importarlas en el servidor de staging, vemos el error siguiente:


Error al ejecutar consulta (1273): Unknown collation: 'utf8mb4_0900_ai_ci' 


El charset en este caso "utf8mb4_0900_ai_ci" no se reconoce.


Modificaremos el archivo sql exportado desde el servidor en producción para corregir el charset.


De esta forma, lo dejaremos de la siguiente manera:


Sustituiremos la línea siguiente:


) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;


por esta:


) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;


Para que en futuras importaciones de la tienda al staging, no tengas que hacer esta operación de forma manual, deberás revisar que las tablas que tengas en la tienda en producción, tengan todas el cotejamiento "utf8mb4_unicode_ci"


Si tienes algunas tablas con "utf8mb4_0900_ai_ci", lo mejor es cambiarlas:



NOTA: Si cambias todas las tablas de "utf8mb4_0900_ai_ci" a "utf8mb4_unicode_ci" en el PhpMyAdmin de la web en producción, deberías poder importar la tienda en el staging sin errores.


¿Ha sido útil esta respuesta? No

Enviar comentario
Por favor ayúdanos a mejorar dejando tus ideas o comentarios