viernes, 4 de julio de 2014

Importar y exportar backups de Bases de Datos MySQL (Local y remoto)

Una de las tareas que se debe realizar muy a menudo cuando se trabaja en múltiples proyectos a la vez, es la de exportar backups de bases de datos de los ambientes de producción y luego importarlos en el ambiente de desarrollo local, para poder hacer los cambios requeridos por el cliente.

Generalmente el acceso disponible a los servidores es a través de SSH, por tal razón es necesario conocer los comandos usando la terminal para importar/exportar backups de las bases de datos.

Los comandos que utilizo muy a menudo para importar/exportar los backups son los que se detallan a continuación, cabe mencionar que en cada uno de ellos utilizo gzip para comprimir/descomprimir los archivos generados, pero se podría utilizar otros.

Exportar backup de servidor local


mysqldump -u {usuario_bd} -p {nombre_base_datos} | gzip > {nombre_backup}.sql.gz

Exportar backup de un servidor remoto a nuestra local


mysqldump -u {usuario_bd} -p{clave_usuario} -h {ip_nombre_servidor} {nombre_base_datos} | gzip > {nombre_backup}.sql.gz

Importar Backup


gzip -dc {nombre_backup}.sql.gz | mysql -u {usuario_bd} -p {nombre_base_datos}


NOTA: Para exportar base de datos de gran tamaño he usado los parámetros --quick y --compress, los cuales han permitido disminuir los tiempos de descargas.

mysqldump -u {usuario_bd} -p{clave_usuario} -h {ip_nombre_servidor} --quick --compress {nombre_base_datos} > {nombre_backup}.sql

Descripciones:

{usuario_bd}: Un usuario existente en el servidor de Base de datos.

{clave_usuario}: Clave del usuario existente en la BD.

{nombre_backup}: Nombre que se le quiere dar al backup comprimido.

{ip_nombre_servidor}: Dirección IP o nombre del servidor remoto.

{nombre_base_datos}: Nombre de la base de datos de la cual nos interesar sacar el backup.

martes, 15 de abril de 2014

Cómo actualizar a php54 en MAC usando macports

Se debe abrir un terminal y correr los siguientes comandos:


sudo port install php54 php54-apache2handler
sudo port select php php54
sudo apachectl restart
Verificar la versión usando: php -i
PHP 5.4.27 (cli) (built: Apr  4 2014 03:18:01) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

miércoles, 9 de abril de 2014

Cómo mover los archivos desde sites/custom/* a sites/all/* en una instalación de Drupal 7

Revisando la estructura de archivos de un proyecto multisite sobre Drupal 7 en el que debía trabajar, observé que las carpetas que contenía los temas, módulos y librerías comunes a todos los sitios estaban en una carpeta custom y la carpeta all había sido eliminada. Es decir que la estructura de la carpeta sites era como la que se muestra a continuación:

sites/default
sites/custom
sites/site1
sites/site2

Seguí los siguientes pasos para reemplazar la carpeta custom por all, y evitar que drupal deje de funcionar:


  • Renombrar la carpeta desde el terminal: mv sites/custom sites/all 
  • Correr los siguientes sql queries para que drupal busque los archivos en el directorio all



UPDATE system SET filename = REPLACE(filename, 'sites/custom/libraries', 'sites/all/libraries');
UPDATE registry SET filename = REPLACE(filename, 'sites/custom/libraries', 'sites/all/libraries');
UPDATE registry_file SET filename = REPLACE(filename, 'sites/custom/libraries', 'sites/all/libraries');

UPDATE system SET filename = REPLACE(filename, 'sites/custom/themes', 'sites/all/themes');
UPDATE registry SET filename = REPLACE(filename, 'sites/custom/themes', 'sites/all/themes');
UPDATE registry_file SET filename = REPLACE(filename, 'sites/custom/themes', 'sites/all/themes');

UPDATE system SET filename = REPLACE(filename, 'sites/custom/modules', 'sites/all/modules');
UPDATE registry SET filename = REPLACE(filename, 'sites/custom/modules', 'sites/all/modules');
UPDATE registry_file SET filename = REPLACE(filename, 'sites/custom/modules', 'sites/all/modules');


TRUNCATE TABLE cache;
TRUNCATE TABLE cache_bootstrap;
TRUNCATE TABLE cache_menu;
TRUNCATE TABLE cache_page;
TRUNCATE TABLE cache_path;


En el caso de que la carpeta custom contenga otros directorios además de libraries, themes y modules; se debe agregar los 3 queries con el nombre de los directorios.



miércoles, 26 de febrero de 2014

Instalación de Django en Ubuntu 12.04

Django es un framework web de código abierto escrito en Python que permite construir aplicaciones web más rápido y con menos código, y respeta el paradigma MVC (Model-View-Controller).

La meta fundamental de Django es facilitar la creación de sitios web complejos. Django pone énfasis en el re-uso, la conectividad y extensibilidad de componentes, el desarrollo rápido y el principio No te repitas (DRY, del inglés Don't Repeat Yourself).

Los pasos para instalar Django en Ubuntu son los siguientes:

  1. Abrir un terminal
  2. Instalar easy_install: sudo apt-get install python-setuptools
  3. Instalar Django: sudo easy_install django
  4. (Opcional instalar pip) sudo easy_install pip

domingo, 9 de febrero de 2014

Cómo conectar nuestro dispositivo móvil Android con Ubuntu para transferir archivos

Los teléfonos móviles con el sistema operativo Android versión 4+ (Ice Cream Sandwich) utilizan el protocolo MTP para la transferencia de archivos multimedia.

MTP (Media Transfer Protocol) es un conjunto de extensiones a PTP (Picture Transfer Protocol) creado por Microsoft. Su función principal es permitir transferir archivos multimedia con sus metadatos a/desde dispositivos móviles, permitiendo también controlar los dispositivos remotamente y/o enviando eventos a los ordenadores.

Una de las razones fundamentales por las que se utiliza MTP es que permite a los dispositivos tener su propio sistema de archivos. Con USB mass storage los dispositivos usaban FAT como sistema de archivos; lo que impedía que los dispositivos tengan control sobre él, por lo que era el sistema operativo el que debía gestionarlo.

Una de las desventajas de MTP para los usuarios de Ubuntu 12.04 es que no es posible usar el dispositivo móvil una vez que ha sido conectado, ya que se requiere instalar unos paquetes adicionales en el sistema antes de poder usarlo.


Los pasos que se deben seguir para habilitar el soporte para MTP en Ubuntu 12.04 son los siguientes:


  1. Abrir un nuevo terminal y ejecutar los siguientes comandos
  2. sudo add-apt-repository ppa:langdalepl/gvfs-mtp
  3. sudo apt-get update
  4. sudo apt-get dist-upgrade
  5. sudo apt-get install mtp-tools mtpfs
  6. sudo apt-get install libusb-dev
Una vez ejecutados todos los comandos anteriores se debe reiniciar el equipo.