Import des données
Il serait pratique de pouvoir importer des données existantes (provenant des sauvegardes d'une base existante par exemple).
Il faut d'abord créer une database dans notre SGBDR, et ensuite importer des données.
Créer la "database"
Avant d'importer les données, il faut d'abord se connecter à votre SGBDR en tant que root, et créer la base de données.
Pour les instructions suivantes, je suppose que vous avez déjà installé un SGBDR avec Docker, en suivant les instructions ici, et que le service Docker s'appelle mon_sgbdr
.
Si on utilise le DevContainer fourni par ces supports, on peut se connecter directement avec mycli
:
Sinon, on peut créer une connexion avec une séance interactive Docker :
Nous allons ensuite créer la base de données :
Afficher les bases de données
À tout moment, on peut afficher la liste de base de données présentes dans le SGBDR :
Supprimer une base de données
À tout moment, on peut supprimer une base de données présente dans le SGBDR :
Importer des données d'une sauvegarde
Je vous ai mis à disposition une sauvegarde d'une base de données (anonymisée), sur ce lien :
Cette sauvegarde est issue de la procédure mysqldump
qui crée juste la liste de commandes SQL nécessaires pour recréer la base de données.
Il faut donc exécuter les commandes dans ce fichier sur notre base de données saas
.
En revanche, on ne peut pas le faire dans l'interprète mycli
ou mysql
. En effet, il faut plutôt lire les contenus du fichier et les rediriger vers l'interprète (en utilisant une redirection UNIX).
Donc, si vous êtes encore connecté à mycli
ou mysql
, quittez.
Nous allons ouvrir un interprète bash sur notre Container MariaDB avec docker. Dans l'invite de commandes de votre ordinateur :
Ensuite, dans BASH de notre container, nous allons installer wget
temporairement, afin de télécharger le fichier dump.
On pourrait maintenant importer les données en utilisant la commande mysql
:
Ici, on se connecte au SGBDR local (dans le container) en tant que l'utilisateur root
, en précisant d'utiliser la database saas
. On redirige les contenus du fichier saas_dump.sql
vers l'interprète.
Après, on peut faire le ménage de notre container :
Autres stratégies d'import
Il y a plusieurs façons de rediriger les données d'un dump vers votre SGBDR.
Via docker exec
(Linux / MacOS)
docker exec
(Linux / MacOS)Si vous avez déjà téléchargé les données en local, vous pouvez envoyer directement les données avec docker exec :
À noter:
Remplacez
PASSWORD
par le mot de passe deroot
. Il doit être collé au paramètre-p
.On utilise l'option
-i
(et pas-it
), car les instructions viennent d'un fichier, pas du clavier (tty)
Monter un volume
Vous pouvez aussi modifier votre docker-compose.yml
, et monter le dossier qui contient le fichier saas_dump.sql
. Imaginons, vous avez téléchargé au préalable le dump dans votre sous-dossier dump
. On peut donc monter de dossier sur le chemin /tmp/dump
dans le Container :
Ensuite, il faut quand même ouvrir un interprète /bin/bash
et exécuter la commande mysql
comme dans les étapes précédentes :
Ensuite, dans le Container :
Avec phpMyAdmin
Vous pouvez essayer d'importer les données avec phpMyAdmin. Attention, par contre, à l'encodage !
C'est moins choix le moins préféré, car il suppose qu'on a le droit de uploader un fichier aussi grand via HTTP sur ce serveur. Souvent, on constate un timeout avant de réussir.
Dernière mise à jour