En este artículo queremos recordarte la importancia de tener actualizada tu tienda PrestaShop, así como la importancia de tener copias de seguridad de tu aplicación PrestaShop.
- Teniendo la web actualizada a la última versión, te aseguras de tener instalada la última versión estable de PrestaShop, que corrigen los errores de seguridad detectados hasta la fecha.
- Teniendo copias de seguridad periódicas, tú o nuestros técnicos pueden restaurar una versión anterior, sin perder mucha información, en caso de problemas en tu aplicación o hosting.
Te detallamos a continuación los pasos que deberías seguir, para tener tu web segura y tener copias de seguridad en local (en tu pc).
Actualización de tu aplicación PrestaShop
Existe un módulo oficial de actualización automática, que permite actualizar tu PrestaShop, de forma sencilla y segura, en pocos click. El módulo se llama “1-Click Upgrade”, y lo estamos instalando a partir de la versión 1.4 de PrestaShop.
Si no encuentras este módulo en la administración de su tienda –> Módulos, puedes descargarlo desde aquí.
Para actualizar a PrestaShop 1.5 sigue todos los pasos de este vídeo sin saltarte ninguno.
Aspectos a tener en cuenta
Antes de actualizar debemos tener en cuenta:
- Es muy importante de realizar una copia de seguridad de la tienda antes de realizar el proceso de actualización. Volveremos a insistir mas adelante.
- Debemos ser conscientes de que con la actualización, las plantillas que provengan de la versión 1.3 de PrestaShop dejarán de funcionar ya que la posibilidad de utilizar la v2 de Smarty (motor de plantillas que usa PrestaShop) que ofrecía PrestaShop 1.4 y que permitía que estas plantillas funcionasen, ha sido eliminada por lo que dejarán de funcionar.
- Hemos comprobado la compatibilidad de todos los módulos adicionales ofrecidos por LaPrimera.net en su distribución especial con la versión 1.5 de PrestaShop y hemos concluido en que el módulo para Ciao, y los módulos de pago de Contra rembolso de MaoFree y el TPV de CECA, no funcionan en esta versión por lo que es necesario eliminarlos antes de actualizar para no provocar errores en el listado de módulos de la versión 1.5. No obstante ya disponemos de un nuevo TPV de CECA para PrestaShop 1.5. Solicítelo en soporte para instalar el nuevo.
Copias de seguridad de tu tienda virtual PrestaShop
Las copias de seguridad son muy importantes, pues nos permiten restaurar toda nuestra web en caso de problema grave.
Es muy importante hacer copias de seguridad periódicamente, y se puede hacer de forma sencilla. Para ello, te recomiendo que veas nuestro vídeo sobre como hacer un copia de seguridad en nuestro “Tutorial de Seguridad Web”: http://formacioncenter.com/curso-de-seguridad-web/
Nuestra recomendación es que se haga una copia de seguridad por lo menos una vez a la semana, pero si hay mucho movimiento de información (nuevos clientes, pedidos, movimiento de catálogo, ….), sería recomendable hacerla mas asidua.
También es muy recomendable que la copia de seguridad se haga en local (en tu pc) por si hubiera algún problema en el servidor.
Te recomendamos que veas lo que sea aplicable a tu aplicación web en nuestro “Tutorial de Seguridad”, que tenemos publicado en nuestra página: http://formacioncenter.com/curso-de-seguridad-web/
Reciba un cordial saludo,
El Equipo de Soporte de LaPrimera.net
[hcshort id=”5″]
Estoy intentando seguir el tutorial para actualizar una tienda Prestashop de la versión 1.4.7.3 a la 1.5.1 y parece que no hay manera, siempre aparece el error: Javascript error (parseJSON) detected for action “upgradeDb”.
He probado a actualizar a la 1.4.9 y el resultado es el mismo ¿Alguna idea de lo que puede pasar?
Gracias!
Hola Manu.
En las pasadas semanas se implemento un nuevo sistema de seguridad que hacía un barrido por los servidor buscando archivos con contenido importante (como datos de conexión a bases de datos, conexión FTP, etc…) y modificaba los permisos de este para evitar una vulnerabilidad, relacionada con cpanel, llamada “symlinks cpanel vulnerability”.
Estos cambios de permisos, en una primera versión de dicho script realizaba el cambio por unos permisos que provocaban algunos problemas. Esto era lo que en la mayoría de los casos provocaba este tipo de problemas al actualizar.
El sistema fue actualizado y modificado para que asignara los permisos correctos y ya debe poder actualizar sin problemas.
Si sigue con problemas y tiene la tienda alojada con nosotros le sugiero que nos haga llegar un ticket desde su área de cliente y estudiaremos su caso.
Saludos.
Hola, he hecho lo del tutorial y me salio esto: Actualización completa, pero se han encontrado alertas. Por favor restablezca su tienda, aparte de todos los errores siguientes: [TRAD] traducciones no han sido fusionadas para archivo /home/articul2/public_html/modules/blockcontact/translations/es.php. Cambiar para copia /home/articul2/public_html/modules/blockcontact/translations/es.php.
[TRAD] traducciones no han sido fusionadas para archivo /home/articul2/public_html/modules/blockcontactinfos/translations/es.php. Cambiar para copia /home/articul2/public_html/modules/blockcontactinfos/translations/es.php.
[TRAD] traducciones no han sido fusionadas para archivo /home/articul2/public_html/modules/blockreinsurance/translations/es.php. Cambiar para copia /home/articul2/public_html/modules/blockreinsurance/translations/es.php.
[TRAD] traducciones no han sido fusionadas para archivo /home/articul2/public_html/modules/blocksharefb/translations/es.php. Cambiar para copia /home/articul2/public_html/modules/blocksharefb/translations/es.php.
[TRAD] traducciones no han sido fusionadas para archivo /home/articul2/public_html/modules/blocksocial/translations/es.php. Cambiar para copia /home/articul2/public_html/modules/blocksocial/translations/es.php.
[TRAD] traducciones no han sido fusionadas para archivo /home/articul2/public_html/modules/homeslider/translations/es.php. Cambiar para copia /home/articul2/public_html/modules/homeslider/translations/es.php.
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_group_shop` (`id_group_shop`, `name`, `active`, `deleted`, `share_stock`, `share_customer`, `share_order`) VALUES (1, ‘Default’, 1, 0, 0, 0, 0): Duplicate entry ‘1’ for key ‘PRIMARY’
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_shop` (`id_shop`, `id_group_shop`, `name`, `id_category`, `id_theme`, `active`, `deleted`) VALUES (1, 1, (SELECT value FROM `ps_configuration` WHERE name = ‘PS_SHOP_NAME’), 1, 1, 1, 0): Duplicate entry ‘1’ for key ‘PRIMARY’
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_theme` (`id_theme`, `name`) VALUES (1, ‘prestashop’): Duplicate entry ‘1’ for key ‘PRIMARY’
[ERROR] SQL 1.5.0.0 1050 in CREATE TABLE `ps_stock` ( `id_stock` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT, `id_product` INT( 11 ) UNSIGNED NOT NULL, `id_product_attribute` INT( 11 ) UNSIGNED NOT NULL, `id_shop` INT(11) UNSIGNED NOT NULL, `quantity` INT(11) NOT NULL, PRIMARY KEY (`id_stock`), KEY `id_product` (`id_product`), KEY `id_product_attribute` (`id_product_attribute`), KEY `id_shop` (`id_shop`), UNIQUE KEY `product_stock` (`id_product` ,`id_product_attribute` ,`id_shop`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8: Table ‘ps_stock’ already exists
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_stock` (id_product, id_product_attribute, id_shop, quantity) (SELECT id_product, id_product_attribute, 1, quantity FROM ps_product_attribute): Duplicate entry ‘7-19-1’ for key ‘product_stock’
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_stock` (id_product, id_product_attribute, id_shop, quantity) (SELECT id_product, 0, 1, IF( (SELECT COUNT(*) FROM ps_product_attribute pa WHERE p.id_product = pa.id_product) > 0, (SELECT SUM(pa2.quantity) FROM ps_product_attribute pa2 WHERE p.id_product = pa2.id_product), quantity ) FROM ps_product p): Duplicate entry ‘7-0-1’ for key ‘product_stock’
[ERROR] SQL 1.5.0.0 1050 in CREATE TABLE `ps_country_shop` ( `id_country` INT( 11 ) UNSIGNED NOT NULL, `id_shop` INT( 11 ) UNSIGNED NOT NULL , PRIMARY KEY (`id_country`, `id_shop`), KEY `id_shop` (`id_shop`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8: Table ‘ps_country_shop’ already exists
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_country_shop` (id_shop, id_country) (SELECT 1, id_country FROM ps_country): Duplicate entry ‘1-1’ for key ‘PRIMARY’
[ERROR] SQL 1.5.0.0 1050 in CREATE TABLE `ps_carrier_shop` ( `id_carrier` INT( 11 ) UNSIGNED NOT NULL , `id_shop` INT( 11 ) UNSIGNED NOT NULL , PRIMARY KEY (`id_carrier`, `id_shop`), KEY `id_shop` (`id_shop`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8: Table ‘ps_carrier_shop’ already exists
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_carrier_shop` (id_shop, id_carrier) (SELECT 1, id_carrier FROM ps_carrier): Duplicate entry ’10-1′ for key ‘PRIMARY’
[ERROR] SQL 1.5.0.0 1050 in CREATE TABLE `ps_lang_shop` ( `id_lang` INT( 11 ) UNSIGNED NOT NULL, `id_shop` INT( 11 ) UNSIGNED NOT NULL, PRIMARY KEY (`id_lang`, `id_shop`), KEY `id_shop` (`id_shop`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8: Table ‘ps_lang_shop’ already exists
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_lang_shop` (id_shop, id_lang) (SELECT 1, id_lang FROM ps_lang): Duplicate entry ‘1-1’ for key ‘PRIMARY’
[ERROR] SQL 1.5.0.0 1050 in CREATE TABLE `ps_currency_shop` ( `id_currency` INT( 11 ) UNSIGNED NOT NULL, `id_shop` INT( 11 ) UNSIGNED NOT NULL, PRIMARY KEY (`id_currency`, `id_shop`), KEY `id_shop` (`id_shop`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8: Table ‘ps_currency_shop’ already exists
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_currency_shop` (id_shop, id_currency) (SELECT 1, id_currency FROM ps_currency): Duplicate entry ‘1-1’ for key ‘PRIMARY’
[ERROR] SQL 1.5.0.0 1050 in CREATE TABLE `ps_contact_shop` ( `id_contact` INT(11) UNSIGNED NOT NULL, `id_shop` INT(11) UNSIGNED NOT NULL, PRIMARY KEY (`id_contact`, `id_shop`), KEY `id_shop` (`id_shop`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8: Table ‘ps_contact_shop’ already exists
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_contact_shop` (id_shop, id_contact) (SELECT 1, id_contact FROM `ps_contact`): Duplicate entry ‘1-1’ for key ‘PRIMARY’
[ERROR] SQL 1.5.0.0 1050 in CREATE TABLE `ps_image_shop` ( `id_image` INT( 11 ) UNSIGNED NOT NULL, `id_shop` INT( 11 ) UNSIGNED NOT NULL, PRIMARY KEY (`id_image`, `id_shop`), KEY `id_shop` (`id_shop`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8: Table ‘ps_image_shop’ already exists
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_image_shop` (id_shop, id_image) (SELECT 1, id_image FROM ps_image): Duplicate entry ’24-1′ for key ‘PRIMARY’
[ERROR] SQL 1.5.0.0 1050 in CREATE TABLE `ps_attribute_group_shop` ( `id_attribute` INT(11) UNSIGNED NOT NULL, `id_group_shop` INT(11) UNSIGNED NOT NULL, PRIMARY KEY (`id_attribute`, `id_group_shop`), KEY `id_group_shop` (`id_group_shop`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8: Table ‘ps_attribute_group_shop’ already exists
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_attribute_group_shop` (id_group_shop, id_attribute) (SELECT 1, id_attribute FROM ps_attribute): Duplicate entry ‘1-1’ for key ‘PRIMARY’
[ERROR] SQL 1.5.0.0 1050 in CREATE TABLE `ps_feature_group_shop` ( `id_feature` INT(11) UNSIGNED NOT NULL, `id_group_shop` INT(11) UNSIGNED NOT NULL , PRIMARY KEY (`id_feature`, `id_group_shop`), KEY `id_group_shop` (`id_group_shop`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8: Table ‘ps_feature_group_shop’ already exists
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_feature_group_shop` (id_group_shop, id_feature) (SELECT 1, id_feature FROM ps_feature): Duplicate entry ‘1-1’ for key ‘PRIMARY’
[ERROR] SQL 1.5.0.0 1050 in CREATE TABLE `ps_group_group_shop` ( `id_group` INT( 11 ) UNSIGNED NOT NULL, `id_group_shop` INT( 11 ) UNSIGNED NOT NULL, PRIMARY KEY (`id_group`, `id_group_shop`), KEY `id_group_shop` (`id_group_shop`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8: Table ‘ps_group_group_shop’ already exists
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_group_group_shop` (id_group_shop, id_group) (SELECT 1, id_group FROM ps_group): Duplicate entry ‘1-1’ for key ‘PRIMARY’
[ERROR] SQL 1.5.0.0 1050 in CREATE TABLE `ps_attribute_group_group_shop` ( `id_attribute_group` INT( 11 ) UNSIGNED NOT NULL , `id_group_shop` INT( 11 ) UNSIGNED NOT NULL , PRIMARY KEY (`id_attribute_group`, `id_group_shop`), KEY `id_group_shop` (`id_group_shop`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8: Table ‘ps_attribute_group_group_shop’ already exists
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_attribute_group_group_shop` (id_group_shop, id_attribute_group) (SELECT 1, id_attribute_group FROM ps_attribute_group): Duplicate entry ‘1-1’ for key ‘PRIMARY’
[ERROR] SQL 1.5.0.0 1050 in CREATE TABLE `ps_tax_rules_group_group_shop` ( `id_tax_rules_group` INT( 11 ) UNSIGNED NOT NULL, `id_group_shop` INT( 11 ) UNSIGNED NOT NULL, PRIMARY KEY (`id_tax_rules_group`, `id_group_shop`), KEY `id_group_shop` (`id_group_shop`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8: Table ‘ps_tax_rules_group_group_shop’ already exists
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_tax_rules_group_group_shop` (`id_tax_rules_group`, `id_group_shop`) (SELECT `id_tax_rules_group`, 1 FROM `ps_tax_rules_group`): Duplicate entry ‘1-1’ for key ‘PRIMARY’
[ERROR] SQL 1.5.0.0 1050 in CREATE TABLE `ps_zone_group_shop` ( `id_zone` INT( 11 ) UNSIGNED NOT NULL , `id_group_shop` INT( 11 ) UNSIGNED NOT NULL , PRIMARY KEY (`id_zone`, `id_group_shop`), KEY `id_group_shop` (`id_group_shop`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8: Table ‘ps_zone_group_shop’ already exists
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_zone_group_shop` (id_group_shop, id_zone) (SELECT 1, id_zone FROM ps_zone): Duplicate entry ‘1-1’ for key ‘PRIMARY’
[ERROR] SQL 1.5.0.0 1050 in CREATE TABLE `ps_manufacturer_group_shop` ( `id_manufacturer` INT( 11 ) UNSIGNED NOT NULL , `id_group_shop` INT( 11 ) UNSIGNED NOT NULL , PRIMARY KEY (`id_manufacturer`, `id_group_shop`), KEY `id_group_shop` (`id_group_shop`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8: Table ‘ps_manufacturer_group_shop’ already exists
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_manufacturer_group_shop` (id_group_shop, id_manufacturer) (SELECT 1, id_manufacturer FROM ps_manufacturer): Duplicate entry ‘1-1’ for key ‘PRIMARY’
[ERROR] SQL 1.5.0.0 1050 in CREATE TABLE `ps_supplier_group_shop` ( `id_supplier` INT( 11 ) UNSIGNED NOT NULL, `id_group_shop` INT( 11 ) UNSIGNED NOT NULL, PRIMARY KEY (`id_supplier`, `id_group_shop`), KEY `id_group_shop` (`id_group_shop`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8: Table ‘ps_supplier_group_shop’ already exists
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_supplier_group_shop` (id_group_shop, id_supplier) (SELECT 1, id_supplier FROM ps_supplier): Duplicate entry ‘1-1’ for key ‘PRIMARY’
[ERROR] SQL 1.5.0.0 1050 in CREATE TABLE `ps_store_shop` ( `id_store` INT( 11 ) UNSIGNED NOT NULL , `id_shop` INT( 11 ) UNSIGNED NOT NULL, PRIMARY KEY (`id_store`, `id_shop`), KEY `id_shop` (`id_shop`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8: Table ‘ps_store_shop’ already exists
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_store_shop` (id_shop, id_store) (SELECT 1, id_store FROM ps_store): Duplicate entry ‘1-1’ for key ‘PRIMARY’
[ERROR] SQL 1.5.0.0 1050 in CREATE TABLE `ps_product_shop` ( `id_product` INT( 11 ) UNSIGNED NOT NULL, `id_shop` INT( 11 ) UNSIGNED NOT NULL, PRIMARY KEY ( `id_shop` , `id_product` ), KEY `id_shop` (`id_shop`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8: Table ‘ps_product_shop’ already exists
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_product_shop` (id_shop, id_product) (SELECT 1, id_product FROM ps_product): Duplicate entry ‘1-7’ for key ‘PRIMARY’
[ERROR] SQL 1.5.0.0 1050 in CREATE TABLE `ps_module_shop` ( `id_module` INT( 11 ) UNSIGNED NOT NULL, `id_shop` INT( 11 ) UNSIGNED NOT NULL, PRIMARY KEY (`id_module` , `id_shop`), KEY `id_shop` (`id_shop`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8: Table ‘ps_module_shop’ already exists
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_module_shop` (`id_module`, `id_shop`) (SELECT `id_module`, 1 FROM `ps_module`): Duplicate entry ‘6-1’ for key ‘PRIMARY’
[ERROR] SQL 1.5.0.0 1050 in CREATE TABLE `ps_referrer_shop` ( `id_referrer` int(10) unsigned NOT NULL auto_increment, `id_shop` int(10) unsigned NOT NULL default ‘1’, `cache_visitors` int(11) default NULL, `cache_visits` int(11) default NULL, `cache_pages` int(11) default NULL, `cache_registrations` int(11) default NULL, `cache_orders` int(11) default NULL, `cache_sales` decimal(17,2) default NULL, `cache_reg_rate` decimal(5,4) default NULL, `cache_order_rate` decimal(5,4) default NULL, PRIMARY KEY (`id_referrer`, `id_shop`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8: Table ‘ps_referrer_shop’ already exists
[ERROR] SQL 1.5.0.0 1050 in CREATE TABLE `ps_scene_shop` ( `id_scene` INT( 11 ) UNSIGNED NOT NULL , `id_shop` INT( 11 ) UNSIGNED NOT NULL, PRIMARY KEY (`id_scene`, `id_shop`), KEY `id_shop` (`id_shop`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8: Table ‘ps_scene_shop’ already exists
[ERROR] SQL 1.5.0.0 1062 in INSERT INTO `ps_scene_shop` (id_shop, id_scene) (SELECT 1, id_scene FROM ps_scene): Duplicate entry ‘1-1’ for key ‘PRIMARY’
[ERROR] SQL 1.5.0.1 1062 in INSERT INTO `ps_module_access` (`id_profile`, `id_module`, `configure`, `view`) ( SELECT `id_profile`, `id_module`, 0, 1 FROM `ps_access` a, ps_module m WHERE `id_tab` = (SELECT `id_tab` FROM `ps_tab` WHERE `class_name` != “” LIMIT 1) AND a.`view` = 0 ): Duplicate entry ‘2-6’ for key ‘PRIMARY’
[ERROR] SQL 1.5.0.1 1062 in INSERT INTO `ps_module_access` (`id_profile`, `id_module`, `configure`, `view`) ( SELECT `id_profile`, `id_module`, 1, 1 FROM `ps_access` a, ps_module m WHERE `id_tab` = (SELECT `id_tab` FROM `ps_tab` WHERE `class_name` != “” LIMIT 1) AND a.`view` = 1 ): Duplicate entry ‘1-6’ for key ‘PRIMARY’
Alerta detectada durante la actualización.
Me podriais decir como poder solucionar esto, un saludo y gracias
Hola Jesús.
Ese tipo de errores suele aparecer cuando se han hecho intentos de actualización anteriores a este y no se han desecho correctamente (restaurando la copia de seguridad que se ha debido realizar previamente). Si te fijas en las líneas que empiezan por [ERROR] verás que el motivo de ese error siempre es “… Duplicate entry …” ó “Table ‘xxxxx’ already exists” lo cual indica que se está intentando hacer una inserción/creación de un elemento que ya se encuentra insertado/creado, por lo que se produce una situación de duplicidad.
Teóricamente, como los errores son al crear o insertar un elemento que ya se encuentra insertado o creado, la tienda debería funcionar correctamente pues los elementos que han provocado el error son accesibles y usables (insisto, ya estaban insertados/creados por lo que esta tarea en realizada no debería ser necesaria), pero esos elementos NO DEBERÍAN estar ahí, por lo que no sabemos que otros elementos que no están o que están y no deberían, etc…., situaciones que pueden provocar problemas futuros.
Me temo que lo mas seguro es deshacer la actualización restaurando una copia de seguridad anterior a cualquier intento de actualización y volver a intentarlo.
Lamento no poder darte otra alternativa, pero sinceramente no la veo.
Saludos.
al intentar instalar el 1 click upgrade me da error y sale esto: No se puede escribir en el “/home/tartasenca/domains/tartasconencantoshop.es/public_html/administracion/autoupgrade” directorio
¿Podeis ayudarme?
Gracias
Hola Miguel.
Lamento mucho no poder ayudarte pero esto parece ser, mas que un error de prestashop o del proceso de actualización, un error de tu aplicación en concreto o del servidor. Creo que puede ser un problema de permisos pues te dice que “no puede escribir en el directorio”, si encuentra el directorio pero no puede generar contenido nuevo dentro, seguramente por que no tiene los permisos necesarios.
Siento no poder ser mas claro en tu caso en particular.
Saludos.
Hay un problema con todos estos manuales y es que parece que siempre empizan con una actulización de paquete por lo que no suelen surgir problemas.
En mi caso, he hecho como unos 10 intentos de actulización y siempre me acaba dando el mismos error.
Me explico
Cuando intenta actulizar las tablss de datos, ejecuta este proceso:
CREATE TABLE IF NOT EXISTS `PREFIX_group_shop` (
`id_group_shop` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(64) CHARACTER SET utf8 NOT NULL,
`share_customer` TINYINT(1) NOT NULL,
`share_order` TINYINT(1) NOT NULL,
`share_stock` TINYINT(1) NOT NULL,
`active` tinyint(1) NOT NULL DEFAULT ‘1’,
`deleted` tinyint(1) NOT NULL DEFAULT ‘0’,
PRIMARY KEY (`id_group_shop`)
) ENGINE=ENGINE_TYPE DEFAULT CHARSET=utf8;
INSERT INTO `PREFIX_group_shop` (`id_group_shop`, `name`, `active`, `deleted`, `share_stock`, `share_customer`, `share_order`) VALUES (1, ‘Default’, 1, 0, 0, 0, 0);
El problema es que crea la tabla IF NOT EXISTS. Pero ¿y si existe?. En mi caso, tengo esa tabla con dos campos: id_group, id_shop.
Como la estructura es evidentemente distinta falla al ejecutar el comando INSERT.
¿Alguna idea?
Hola Eduardo.
Debes entender que todos los prestashop parten de la misma base pero cada uno se desarrolla de una manera distinta. Ten en cuenta que en el mercado hay miles de módulos para prestashop, plantillas, personalizaciones que ha realizado cada uno en su tienda, rediseños, optimizaciones, etc….
Todos estos cambios hacen que si tu coges 2 prestashops cualesquiera y los comparas veras como son distintos, por lo que para ofrecer un manual de garantías tendríamos que hacer uno por cada prestashop que existe, y esto como comprenderás no es posible. Por ello, para todos nuestros vídeos y manuales usamos la base (el principio) y que es el punto común de todo prestashop, que es la versión inicial, que en este caso es nuestra distribución de prestashop.
Respecto a tu problema, respondo a tu pregunta:
-“Pero ¿y si existe?”: Ese es el problema, que no debería existir y si existe puede ser por dos motivos:
1.- Que se haya realizado un intento de actualización anterior. No creo que sea ese el caso pues de haber sido así la tabla se hubiese creado íntegramente, no solo “a medias”. De hecho acabo de comprobar todas las versiones de prestashop 1.5 desde la 1.5.0.0 para ver si en algún punto se creaba esta tabla con solo esos dos elementos y esto no es asi. La primera versión que usaba esta tabla es la 1.5.0.0 y ya la creaba con su estructura actual.
2.- La otra posibilidad es que hayas instalado algún módulo, en algún momento, que generó esa tabla. Esto no significa que aún lo tengas ya que puede que lo hayas borrado hace tiempo o no, simplemente no lo estés usando pero el caso es el mismo, el módulo no ha sido desinstalado correctamente pues esa tabla permanece creada.
Lo que puedes hacer, sin estas tratando de actualizar de a la versión 1.5, como esa tabla no pertenece a prestashop, puedes eliminarla directamente. Este borrado no debe afectar a tu tienda a menos que el módulo que la creó aún este instalado y provoque fallos en la misma.
Te recomiendo que le eches un vistazo a tu tienda y que desinstales y borres (en ese orden) todo módulo que no pertenezca a tu versión de prestashop y que no estés usando. Tras esto haz una copia de seguridad e intenta actualizar. Si te sigue dando ese error ya deberás ver si alguno de los módulos instalados hace uso de esa tabla y si lo encuentras desinstalalo y borralo (no te va a servir mas, no va a funcionar en la 1.5), y si no lo encuentras borra la tabla directamente.
Espero que con esto puedas actualizar tu tienda.
Hola Admin, Antes que nada, muchas gracias por contestar.
Precisamente estoy en ese proceso, revisar todos los errores de SQL e intentar corregirlos aunque no es tan sencillo. Tanto es así que casi estoy a punto de desistir. Tengo una consulta en Mysql que me hace todo el proceso de revisión de tablas pero al final no consigo que la plataforma funcione al 100%.
De todos modos, tengo que decir
1) Si ya tengo creada una tabla con dos campos es porque algún proceso me la ha creado. NO tengo ningún módulo que no sean los originales de prestashop.
2) Antes de realizar cualquier actualización realizo una copia de seguridad y si falla, vuelvo al original.
3) El proceso de actuaización hace un IF NOT EXISTS CREATE TABLE…….Si es una tabla nueva, ¿porqué debe comprobar si existe?. Y si hace esa comprobación, ¿no debería ejecutar algún tipo de proceso ….ELSE…ALTER TABLE……. ?
La cuestión es que este erro le pasa a más gente, he abierto un caso en prestashop sin respuesta.
Todo me plantea un problema muy importante puesto que es una tienda en explotación.
En fin ya se que no tenéis nada que ver en el problema pero si debo quejarme de Prestashop y su política de actualizaciones. Yo soy informático y tengo un acceso directo al servidor así que me imagino los problemas que pueden estar teniendo los usuarios no especializados.
El caso es que ahora mismo estoy en un callejón sin salida y me temo que voy a recomendar a mis clientes cambiar de plataforma aunque con todo el trabajo que han realizado no se que me dirán.
Saludos,
Hola de nuevo Eduardo.
1.- Lo que te estoy dando son posibilidades, no hechos, pues lamentándolo mucho no podemos saber cual es el origen EXACTO de esa tabla pero vuelvo a insistir en que si tu no la has creado y ya has comprobado que no pertenece a ningún módulo, puedes borrarla directamente pues no pertenece a prestashop.
2.- Esa es la praxis correcta y la que te va a evitar mas de un dolor de cabeza en el futuro. Buena costumbre!.
3.- Me temo que esa respuesta no te la podemos dar nosotros. Lo único que te puedo decir es que desde un punto de vista de un desarrollador esa es una practica muy común y adoptada por todos nosotros ya que nos permite continuar con las demás consultas en el caso de que la tabla que pretendemos crear ya esté creada, simplemente por eso. También es cierto que se puede comprobar la estructura de una tabla determinada y si falta algo añadirlo mediante ALTER TABLE pero si trato de ponerme desde el lado de los desarrolladores de prestashop se me plantean algunas dudas:
“¿Por qué esta esa tabla creada?, ¿se trata de una personalización del usuario?, ¿se trata de una tabla de un módulo instalado por el usuario?, ¿debo editarla aún a riesgo de que la personalización que ha hecho el usuario deje de funcionar?,….”
Ante estas preguntas, personalmente, creo que la mejor práctica es notificar la situación al usuario y que este obre en consecuencia, es decir, si se trata de una personalización, que el usuario sepa que esa personalización puede crear un conflicto para que proceda a corregirlo. Si se trata de un módulo que el usuario decida si le merece la pena dejar de usar el módulo para actualizar o si por el contrario prefiere seguir con su módulos, etc…
Respecto al por que hacen estas cosas exactamente, insisto en que esta pregunta deberías dirigirla a prestashop directamente pues son LOS ÚNICOS que pueden darle respuesta.
Debo decirte que nosotros llevamos trabajando con aplicaciones para comercio electrónico mas de una década, hemos trabajado con las aplicaciones de comercio electrónico mas extendidas del mercado (oscommerce, zencart, virtuemart, etc…), y debo decirte que las actualizaciones siempre son un momento muy sensible, pero aún así, el proceso de actualización de prestashop es uno de los menos traumáticos que hemos visto. Prestashop es la mejor herramienta para comercio electrónico con la que hemos trabajado nunca (eso no quiere decir que mañana aparezca una mejor y la cambiemos por esta nueva, pero de momento esa alternativa, desde nuestro punto de vista, no existe).
Si has tomado la decisión de recomendar el cambio deberías pensar primero a que aplicación y asegurarte de que te ofrece las mismas garantías y ninguno de sus problemas (ni magento, ni WordPress+plugin de ecommerce , ni Joomla+extensión de ecommerce, ni zencart, ni oscommerce, ni ninguna de las que conocemos ofrecen esto). Si finalmente encuentras una aplicación que reúna estas características entonces incluso nosotros te animaríamos al cambio.
Desde Laprimera.net te animamos a que no te rindas con Prestashop, y te deseamos suerte y éxito en esta y las demás actualizaciones que tengas que hacer.
Saludos!.
hola, estoy planteando la idea de actualizar a 1.5.2 desde 1.4.8.2 pero parto de una plantilla antigua que se ideo para 1.3 y al actualizar a 1.4 surgieron multitud de problemas, por eso estoy casi seguro de que si actualizo habrá errores casi seguro. Por otro lado también quiero cambiar dicha plantilla obsoleta a la moderna “liquid” y no se si sería mejor primero cambiar la plantilla segun mi version 1.4.8.2 y posteriormente actualizar prestashop a 1.5.2 o bien hacerlo al reves. Saludos
Hola Miguel Angel, mejor abre un ticket de soporte y que te hagan una pequeña auditoría de como tienes configurada actualmente tu versión de PrestaShop, pues el 99% de los fallos al actualizar son derivados de plantillas y módulos no compatibles con 1.5.x
Primero tendrás que actualizar. Al actualizar puedes elegir la plantilla oficial y luego poner la Liquid si te interesa.
Pero para curarte en salud pide en soporte técnico que has hablado conmigo y que te hagan una copia gratis de la que tienes actualmente en producción en un directorio protegido y allí hacer las pruebas.
Saludos de Félix
Hola.
He cambiado el tema de mi tienda y al modificarlo, la imagen que tenía en la cabecera se ha movido al final de la página. Cómo podría modificarla para volver a ponerlo en la cabecera??
Un saludo y gracias
Gracias por su amable atención y disposición a ayudar de manera permanente.
Tengo la versión 1.5.0.13 he intentado actualizarla a la versión 1.5.6.1 pero al final del proceso las imágenes no aparecen ni en las miniaturas ni las imágenes originales. Ya probé la opción de restaurar miniaturas pero aparece un mensaje que dice que no se encuentran los archivos. Gracias por su ayuda.