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.
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 --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.
![]()


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
SI, un poco de compresión no cae nada mal