jueves, 10 de febrero de 2011

Cómo subir un proyecto a un servidor de producción

Cuando estamos preparando una subida a un servidor y creamos los paquetes de ficheros, es importante la compresión del mismo para no morir en el intento.

Si estamos trabajando con subversion, obviamente no vamos a subir todos los .svn al servidor de producción, a parte de todas las carpetas que no necesitemos, como por ejemplo una carpeta con los html estáticos o las famosas carpetas .project de eclipse, etcétera.

Para ello, con la consola (si estamos en un entorno unix) o con el putty entramos a la carpeta padre del proyecto y escribimos:

tar -pczf nombre_del_paquete.tar.gz carpeta_del_proyecto/ --exclude=".svn" --exclude="Carpeta excluida" --exclude="fichero_excluido.xxx"

Esto nos va a crear un paquete llamado nombre_del_paquete.tar.gz, que será el que debemos subir al servidor via ftp (o el protocolo que sea), y que ocupará muchísimo menos que si subieramos todos los ficheros a pelo o en un zip o rar.

Ahora toca comprimir la base de datos. Yo suelo subir la base de datos comprimida en bzip, que es una compresión bastante óptima para ficheros de texto plano.

Primero hacemos el dump de la base de datos:

mysqldump -u nombre_usuario -p nombre_base_datos > nombre_del_paquete.sql

Esto nos creará un fichero de texto plano, y dependiendo de lo grande que sea nuestra base de datos necesitaremos comprimirla o no. En caso de necesitar comprimirla, como decía antes, recomiendo usar bzip:

bzip2 nombre_del_paquete.sql

Una vez que está todo subido al servidor, toca descomprimir.

-Primero el paquete de ficheros:
tar -xvf nombre_del_paquete.tar.gz

-Segundo la base de datos
bunzip2 nombre_del_paquete.sql.bz2

Cabe destacar que estos dos formatos tar.gz y bz2 se pueden descomprimir con WinRar, en caso que el servidor sea Windows.