188_7d3f4775af1ff15c44b29f1ea1a99b51_habitaclick.png

GlobexCorp

wpe.jpg

Get Firefox

Descarga Firefox 3

Sponsor

Places

Tagboard

<h2>: cosa
<h1>l: l
Gnuget: Cual panda cual panda? :p, Bucio me suenas conocido pero la neta no te ubico, ibas conmigo a la secundaria? :p
zodman: donde esta el pandita ?
Bucio: :) gnuget hola te acuerdas de mi
yobageM: hola _o/
GnDx: jaja xD =D

My Plurk

Respaldando la base de datos para nuestros proyectos

Cuando trabajamos con un manejador de versiones como subversion o cvs   tenemos  que estar constantemente respaldando nuestra base de datos para no perder la estructura  de la misma  con nuestros  compañeros de equipo. Al final  suele ser un infierno que al hacerle un  alter a una columna  tengamos que  (en el peor de los casos)  abrir el phpmyadmin para respaldar la base.

Quizá  algo menos  doloroso es usar mysqldump pero después de hacerlo  repetidas ocaciones suele ser  también pesado.

Por eso  escribí este pequeño script en bash que ayuda  a esta labor.

#!/bin/bash                                                                                                                                                  
help(){
    echo "Usage $0 command"
    echo " $0 --all"
    echo " $0 --table"

}

case $1 in
    --all )
        mysqldump -u user -ppass database --opt --triggers --routines  > $(date +%Y_%m_%d_%H_%M)-dump-$USER-all.sql
        echo "backup all database"

        ;;
    --table )
        if [ $2 ]; then
            mysqldump -u user -ppassword database  $2 --opt  --triggers --routines  > $(date +%Y_%m_%d_%H_%M)-dump-$USER-$2.sql
            echo "backup to $2"
        else
            help
        fi
        ;;
esac

La manera de usarlo es sencilla,

./backup --all   #para respaldar toda la base de datos
./backup --table table_name #para respaldar una tabla en particular

Cada que generemos un respaldo ya sea de alguna tabla o de la base completa  nos mostrara la fecha  y el usuario que genero ese backup, así podremos tener mas referencia acerca de  quien es el último que hizo algún cambio en la estructura de la base de nuestro proyecto.

Temas relacionados

{ programación, bash }

Sobre el autor

Gnuget

Programador de tiempo completo,  Con enorme gusto  por el software libre.

Comentarios

lunes 28 de julio, 2008 @ 12:07

zodman

me gusta mas:

#!/bin/sh
export backup_name=$(date +%Y%m%d%H%M)-dump-$USER.sql
mysqldump -u user -p<pass> <db> > $backup_name
bzip2 $backup_name
echo $backup_name.bz2 created

lunes 28 de julio, 2008 @ 13:58

Gnuget

SI, un poco de compresión no cae nada mal