Section courante

A propos

Section administrative du site

Synchronisation de base de données

La synchronisation de base de données, soit l'opération consistant à mettre à jour une base de données de style développement avec la base de données du système de production, varie considérablement d'une technologie à l'autre. Toutefois, il n'y a pas de service AWS proprement dédié à cette opération. Vous devrez donc, développer un script à cet effet.

Synchronisation de base de données Aurora DB sous Linux

Pour effectuer le synchronisation d'une base de données Aurora DB d'un serveur de production vers un serveur de développement, vous devez utiliser des commandes Linux en lignes de commandes. Vous devez tout d'abord vous connectez à votre instance EC2 en utilisant une commande SSH ressemblant à ceci sur votre serveur de production :

ssh -i "maclef.pem" ec2-user@ec2-xx-xx-xx-xx.ca-central-1.compute.amazonaws.com

Ensuite, vous tapez la commande suivante afin de déterminer quel est le mot de passe actuellement utiliser par le serveur de production. S'il s'agit d'un WordPress classique, on peut facilement obtenir l'information avec une commande comme ceci :;

grep "DB_PASSWORD" /var/www/html/projet/wp-config.php

S'il s'agit plutôt d'un Symfony 1 de PHP, vous devrez plutôt utiliser la commande suivante :

grep "password" /var/www/html/projet/config/databases.yml

Une fois le mot de passe obtenu, copier-le dans le presse-papier. Déplacer vous dans un répertoire ayant beaucoup d'espace disque de disponible, comme par exemple le dossier «/tmp»  et tapez une commande d'exportation de la base de données Aurora DB :

cd /tmp
mysqldump -p -u monutilisateur prd_projet --host=prd-projet-rds.cxxx1x1xxx1x.ca-central-1.rds.amazonaws.com > export-production-20191228.sql

Il vous demandera un mot de passe, vous collerez celui contenu dans votre presse-papier. Ensuite, vous pouvez télécharger le fichier «export-production-20191228.sql» à l'aide d'un logiciel comme FileZilla ou MobaXTerm ou à l'aide de la commande en ligne commande scp. Maintenant, que vous avez vos donnée de la base de données de production sur votre poste de travail. Vous pouvez maintenant effectuer le même processus mais à l'envers sur le serveur de développement. Ainsi, vous commencez par transférer le fichier export-production-20191228.sql sur le serveur de développement dans un dossier /tmp. Vous vous connectez en SSH sur le serveur de développement :

ssh -i "maclef.pem" ec2-user@ec2-xx-xx-xx-xx.ca-central-1.compute.amazonaws.com

Ensuite, vous tapez la commande suivante afin de déterminer quel est le mot de passe actuellement utiliser par le serveur de production. S'il s'agit d'un WordPress classique, on peut facilement obtenir l'information avec une commande comme ceci :

grep "DB_PASSWORD" /var/www/html/projet/wp-config.php

S'il s'agit plutôt d'un Symfony 1 de PHP, vous devrez plutôt utiliser la commande suivante :

grep "password" /var/www/html/projet/config/databases.yml

Une fois le mot de passe obtenu, copier-le dans le presse-papier. Vous maintenant vous connectez à votre base de données en utilisant la commande suivante 

mysql -u dev_utilisateur -p -h dev-projet-rds.cxxx1x1xxx1x.ca-central-1.rds.amazonaws.com

Vous entrez votre mot de passe contenu dans le presse-papier. Vous êtes maintenant en mode ligne de commande MySQL. Vous sélectionnez d'abord votre base de données destinataire et vous indiquez le fichier MySQL à importer :

  1. use dev_projet;
  2. source /tmp/export-production-20191228.sql

Voir également

Référence des opérations

Dernière mise à jour : Samedi, le 28 décembre 2019