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 :