Compare commits

...
Sign in to create a new pull request.

2 commits

Author SHA1 Message Date
thibault.raquet
16d21f50cc migration 2025-03-11 11:57:57 +01:00
thibault.raquet
5cab33a26b migration 2025-03-11 09:37:18 +01:00
2 changed files with 70 additions and 0 deletions

View 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

View 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