Compare commits
2 commits
master
...
migrate-da
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
16d21f50cc | ||
|
|
5cab33a26b |
2 changed files with 70 additions and 0 deletions
39
database_migration/README.md
Normal file
39
database_migration/README.md
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
# Migration de la base de données mariadb pour un projet LDC-WEB
|
||||
|
||||
### Prérequis
|
||||
|
||||
1) Avoir l'accès maintainer pour le projet
|
||||
2) Avoir accès à l'ancienne, comme à la nouvelle base de données (ip publique autorisée)
|
||||
|
||||
### Maintenance du site
|
||||
|
||||
Avant de migrer la base de données, il est nécessaire de mettre le site en maintenance pour éviter
|
||||
d'insérer des données dans l'ancienne base pendant la migration de la nouvelle.
|
||||
|
||||
1) Depuis Lens :
|
||||
- Exécuter un shell dans le pod du projet
|
||||
- `php artisan down`
|
||||
2) En CLI :
|
||||
- `export POD_NAME=<nom_du_pod>`
|
||||
- `export NAMESPACE=<namespace>`
|
||||
- `kubectl --kubeconfig="~/.kube/ldc-web-prod" exec "${POD_NAME}" -n ${NAMESPACE} -- php artisan down`
|
||||
|
||||
### Migration de la base
|
||||
|
||||
Utiliser le script de migration `migrate.sh`
|
||||
```
|
||||
export DB_NAME=
|
||||
export PASSWORD=
|
||||
sh migrate.sh
|
||||
```
|
||||
|
||||
Si le user est différent du nom de la base : `export USER_NAME=`
|
||||
|
||||
### Modification du projet
|
||||
|
||||
Dans la ressource `configMap` du fichier `manifest.yaml` :
|
||||
1) Modifier la variable `DB_HOST`, mettre `mysql-e884938b-o403ac517.database.cloud.ovh.net`
|
||||
2) Ajouter la variable `DB_PORT`, mettre `20184`
|
||||
3) Commit/Merge dans la branche souhaitée
|
||||
4) Déployer et réactiver le site (`php artisan up`)
|
||||
5) Vérifier le fonctionnement du site et la présence des données migrées
|
||||
31
database_migration/migrate.sh
Normal file
31
database_migration/migrate.sh
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
#!/bin/bash
|
||||
|
||||
## MOTS DE PASSE ##
|
||||
new_password='' # A SURCHARGER
|
||||
old_password='' # A SURCHARGER
|
||||
|
||||
## BASES DE DONNEES
|
||||
new_host='mysql-e884938b-o403ac517.database.cloud.ovh.net'
|
||||
new_port=20184
|
||||
|
||||
old_host='51.91.81.188'
|
||||
old_port=54322
|
||||
|
||||
# Si le user est le même que le nom de base
|
||||
if [[ -n "$USER" ]]; then
|
||||
USER=$DB_NAME
|
||||
fi
|
||||
|
||||
# Créer la nouvelle base - user - privilèges
|
||||
query="CREATE DATABASE IF NOT EXISTS \`${DB_NAME}\`;CREATE USER IF NOT EXISTS \`${USER}\`@'%' IDENTIFIED BY '${PASSWORD}';GRANT ALL PRIVILEGES ON \`${DB_NAME}\`.* TO \`${USER}\`@'%';"
|
||||
|
||||
mariadb -h ${new_host} -P ${new_port} -u avnadmin --password=${new_password} -e "${query}"
|
||||
|
||||
# Dump ancienne base
|
||||
mysqldump -h ${old_host} -P ${old_port} -u root --password=${old_password} ${DB_NAME} > /tmp/${DB_NAME}.sql
|
||||
|
||||
# Load nouvelle base
|
||||
mariadb -h ${new_host} -P ${new_port} -u avnadmin --password=${new_password} ${DB_NAME} < /tmp/${DB_NAME}.sql
|
||||
|
||||
# Supprimer le dump
|
||||
rm /tmp/${DB_NAME}.sql
|
||||
Loading…
Add table
Reference in a new issue