miércoles, 8 de agosto de 2012

Migrar tienda con Prestashop

Backup de la tienda Origen

 Antes de migrar nuestra tienda a otra ubicación tenemos que hacer un backup de la base de datos y un tareo del directorio donde tenemos instalada nuestra tienda.
Para realizar el backup de una base de datos MySql yo prefiero realizarlo mediante el comando mysqldump frente a otros softwares como PhpMyAdmin, que aunque es una herramienta que simplifica la administración y el mantenimiento de una base de datos MySql, para este tipo de cosas la veo un poco limitada en cuanto a rendimiento y se hace muy cuesta arriba a la hora de generar ficheros de backup con un tamaño de unos 25 Mb y de restaurarlos. El uso estándar del comando  mysqldump es:  

          mysqldump  -R --user (usuario) -p (Base de Datos) > (nombre).sql 

Esto nos generará un fichero .sql con todas las sentencias para que al lanzarlo nos construya una base de datos idéntica a la que teníamos. Como nota adicional siempre le pongo el -R para que realice también el backup de los procedimientos almacenados y funciones. Otros ejemplos de uso del comando mysqldump son:
  • Backup de todas las bases de datos 
    • mysqldump --user (usuario) -p --all-databases > (nombre).sql
  • Backup de la estructura
    • mysqldump --user (usuario) -p --no-data  (Base de Datos)) > (nombre).sql
  • Backup los datos exclusivamente
    • mysqldump --complete-insert --no-create-info --user (usuario) -p (Base de Datos) > (nombre).sql
  • Backup con la contraseña en la sentencia(la password va pegada al -p)
    • mysqldump --user (usuario) -pPASS --all-databases > (nombre).sql
Después lo que hay que realizar es un tareo del directorio donde tenemos Prestashop. Para ello utilizamos el comando tar de la siguiente manera: 

      tar -cvf (nombre del tar).tar (directorio de prestashop)

Con esta sentencia tendríamos tareado todo el contenido de el directorio donde está prestashop en el fichero .tar. Una opción interesante del comando tar es -j pues comprime con bunZip2 el contenido del fichero, con lo que si tenemos que mover el tar entre servidores el tiempo es menor y el consumo de trafico también sería menor.


Restaurar en el destino


Lo primero que vamos a realizar es la descompresión del .tar en el directorio que hallamos elegido para albergar la tienda. Para esto copiamos el archivo .tar en el directorio y ejecutamos el comando: 

      tar -xvf archivo.tar
 

Tras tener el directorio explotado, verificamos que los propietarios tanto de archivos como de carpetas son los correctos para esta nueva ubicación (si no los podéis cambiar con el comando chown.
Después de esto abrimos el fichero /nueva_ubicacion/config/settings.inc.php y editar las líneas correspondientes a la definición de las variables __PS_BASE_URI_, _DB_NAME_, _DB_SERVER_, _DB_USER_ y _DB_PASSWORD_ para que se ajusten a la nueva ubicación y a la nueva base de datos.
  • define(‘__PS_BASE_URI__’, ‘/directorio/‘); Directorio donde hemos descomprimido el tar, si es en el raíz de tu carpeta publica poner “/
  • define(‘_DB_NAME_’, ‘base de datos nueva‘); Poner el nuevo nombre de la base de datos
  • define(‘_DB_USER_’, ‘usuario de la base de datos‘); Poner el nuevo usuario de la base de datos
  • define(‘_DB_PASSWD_’, ‘pass‘); Contraseña del usuario de la base de datos
Ahora restauramos la base de datos con el siguiente comando 

      mysql -u (usuario) -p --database=(nombre bd) < (archivo de backup).sql

Tras restaurar la base de datos necesitaremos ajustar los parámetros PS_SHOP_DOMAIN_SSL y PS_SHOP_DOMAIN de la tabla ps_configuration y asignarles el valor dominio.es/directorio o si la tenemos en el raíz del dominio dominio.es, sin más.
En caso de estar trabajando con el usuario root de la base de datos podemos otorgarle permisos administrador a otro usuario de la siguiente manera:
      
      #GRANT ALL PRIVILEGES ON (nombre de la base de datos).* TO 'usuario@localhost' IDENTIFIED BY 'password';

Si en vez de (nombre de la base de datos)  pusiésemos *.* se replicarían estos privilegios a todas las bases de datos.
Con esto ya tendríamos nuestra tienda prestashop migrada a otra ubicación. Está probado para la versión 1.4.8. 

No hay comentarios:

Publicar un comentario