Archivo de Septiembre de 2010

Para restaurar una copia de seguridad creada con el AkeebaBackup (antes JoomlaPack) y con extensión .jpa tenemos que realizar los siguientes pasos:

  1. Crear una base de datos (por ejemplo mibasededatos) MySql utilizando phpMyAdmin, HeidiSql etc
  2. Crear la carpeta donde queremos restaurar la copia de seguridad, por ejemplo misitioweb y copiar en ella el archivo jpa, mibackup.jpa
  3. Copiar kickstart.php en la carpeta (misitioweb) creada anteriormente. Kickstart.php es un script en php para descomprimir archivos en formato .jpa. Podéis obtenerlo haciendo clic aquí . Si descomprimís el paquete os aparecerán los archivos .ini correspondientes a los idiomas disponibles.
  4. Ejecutar kickstart. En este caso, estoy restaurando la copia de seguridad en localhost, por tanto para ejecutar kickstart tengo que ir al navegador y poner http://localhost/misitioweb/kickstart.php . En función de dónde lo vayáis a instalar tendréis que utilizar una dirección u otra.

A continuación os dejo las capturas de pantalla de la ejecución del Kickstart. En este caso estoy usando kickstart 3.1.3 que es la última versión disponible actualmente.

Pantalla 1 del kickstart. Hay que pulsar ESC para salir de ella.

Como todos los parámetros son correctos, hacemos clic en siguiente (next)

Ahora tenemos que borrar el directorio de instalación para que todo funcione correctamente.

Necesitaba realizar una nueva instalación de magento, pero con una base de datos ya existente. En realidad ya lo había hecho más veces y parecía fácil, pero como siempre tiene que pasar algo (informáticamente hablando), tras importar correctamente la base de datos e instalar correctamente magento, al ir al front end me sale el siguiente error:
Fatal error: Call to a member function extend() on a non-object in C:\xampp\htdocs\magento\app\code\core\Mage\Core\Model\Mysql4\Config.php on line 115

En este caso el path es htdocs, porque estoy usando Xampp, pero con Wampp y similares el error será el mismo, lo único que cambiará será el path.

Tras mucho pensar y navegar por internet, al final encontré el origen del problema y como suele suceder…la solución es fácil, pero hasta que la encuentras te produce quebraderos de cabeza.

El problema surgió porque al importar la base de datos, no me di cuenta de que el auto_value_for_zero= on estaba activado con lo cual colocó automáticamente valores erróneos en varias tablas, así que para solucionar esto tenemos dos opciones:

OPCIÓN 1.

Cambiar los valores correspondientes a
core_store
core_store_group
core_website

que deben ser 0

OPCIÓN 2.

Añadir
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
en el script de importación, o ejecutar dicha instrucción antes de importar la base de datos.

Si al intentar importar una base de datos con PhpMyAdmin nos sale el error: ‘Fatal Error:Maximum execution time of 300 seconds exceeded’, en este caso concreto implica que la base de datos es muy grande y por tanto no le da tiempo a cargarse. Entonces tenemos dos opciones:
1. Importar la base de datos utilizando Mysql desde la línea de comandos (recordad que todo lo referente a este post es válido para ordenadores con sistema operativo Windows)

  • Ir a la consola de Windows cmd.exe
  • Ir a la carpeta dónde tenéis instalado MySql, en este caso tengo istalado XAMPP así que mi MySql está en C:\xampp\mysql\bin\, una vez aquí tenemos que escribir lo siguiente en la línea de comandos:

    mysql.exe -p -u usuario nombre < bbdd a importar

    donde:

    usuario: usuario de la bbdd
    nombre: nombre de la bbdd a la que queremos importar los datos
    bbdd a importar: camino a la base de datos que deseamos importar

    Ejemplo: mysql.exe -p -u root tienda < C:\bases\midb.sql

2. Importar la base de datos utilizando HeidiSQL que es un interfaz para trabajar con bases de datos MySql y es gratuito (tenéis más pero personalmente a mi me gusta este y además es muy intuitivo)