Optimisation des exports de bases de données pour mise à jour d’environnement de développement

Cet article est assez ancien, malgré toute l'attention que j' apporte à mes contenus il est possible que celui-ci ne soit plus d'actualité.
N'hésitez pas à me le signaler si nécessaire via le formulaire de contact.

En tant que développeur il est souvent nécessaire de faire des dumps de base de données pour mettre à jour les environnements de développements ( qu’ils soient locaux ou sur le serveur ).
Cependant les tables de productions sont souvent très lourdes et comportent des données qui ne sont pas forcément nécessaire pour développer.

Voici un petit script qui va vous faire gagner du temps dans l’export / import de ces bases de données.
La logique est relativement simple .

Pour les tables dont les données ne sont pas importantes, on va exporter uniquement la structure.
Puis nous excluons ces tables de l’export global.

 #!/bin/bash
 
#Variables de la base de données
host="localhost"
user="root"
pass="root"
dbname="dbname"
 
#Stockage de ces tables à ignorer dans une variables ( separer les noms par un espace)
ignoreTables="table1 table2 "
 
#Dump de la structure de ces tables
echo "Export de la structure des tables ignorées"
mysqldump -d -h $host -u $user -p$pass $dbname $ignoreTables > backup-structure.sql
 
#Construction de la chaine d'exclusion
ignoreTablesString=""
for table in $ignoreTables
do
ignoreTablesString="$ignoreTablesString --ignore-table $dbname.$table "
done
 
#dump gzipé de la base sans ces tables
echo "Export des données de la bdd ( sans les tables à ignorer )"
mysqldump -h $host -u $user -p$pass $dbname $ignoreTablesString --single-transaction | gzip > backup-data.sql.gz

Il vous suffit ensuite d’importer les 2 fichiers.
Sur certaines bases de données magento ce script fait économiser des gigas de données 🙂

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *