Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
td_histoire_numerique:installation_de_la_base_de_donnees [2015/10/05 14:12] Francesco Beretta |
td_histoire_numerique:installation_de_la_base_de_donnees [2015/12/01 09:09] Francesco Beretta [Mise à jour de la base de données] |
||
---|---|---|---|
Ligne 9: | Ligne 9: | ||
- | Nous utilisons ce logiciel pour tout ce qui concerne la gestion de la base de données | + | Nous utilisons ce logiciel pour tout ce qui concerne la gestion de la base de données, des sauvegardes, etc. |
Ligne 19: | Ligne 19: | ||
* Nom du serveur 'postgresql_9_4' | * Nom du serveur 'postgresql_9_4' | ||
* Hôte: localhost | * Hôte: localhost | ||
- | * port TCP : 5432 | + | * port TCP : 5432 (port 5433 pour les utilisateurs de MacOS qui ont le serveur PostgreSQL de la distribution Enterprise DB) |
* base maintenance: postgres | * base maintenance: postgres | ||
* nom utilisateur: postgres | * nom utilisateur: postgres | ||
* Mot de passe: le votre et l'enregistrer | * Mot de passe: le votre et l'enregistrer | ||
- | * Une fois la connexion au serveur ouverte et le mot de passé 'avalé', créer une nouvelle base de données appelée 'TD2015'. Dans l'onglet Définition mettre 'codage' à UTF8, laisser le reste des paramètres par défaut. | + | |
+ | === Test de l'extension XML === | ||
+ | |||
+ | |||
+ | * Une fois connectés, il faut tester si l'extension XML de votre base de données marche (normalement pas de soucis pour Windows, quelques soucis pour MacOS: hélas, il y a un bug dans la distribution Bitnami) | ||
+ | * Sélectionner sans l'ouvrir la base par défaut 'postgres' (qu'il ne faut jamais toucher) | ||
+ | * Ouvrir une boîte de dialogue SQL avec le bouton 'SQL' en forme de loupe qui se trouve parmi les boutons en haut de la fenêtre (cf. l'illustration ci-dessous) | ||
+ | {{ :td_histoire_numerique:test_fonctions_xml.jpg?200 |}} | ||
+ | |||
+ | * copiez cette requête: <code sql>SELECT (xpath('/my:a/text()', '<my:a xmlns:my="http://example.com">Test réussi !</my:a>', | ||
+ | ARRAY[ARRAY['my', 'http://example.com']]))[1];</code> et collez-la dans la boîte de dialogue SQL. | ||
+ | * Exécutez-la avec le bouton en forme de flêche verte | ||
+ | * si l'extension XML est correctement installée, vous aurez ce résultat : **"Test réussi !"** | ||
+ | * Sinon, vous aurez le message d'erreur qui se trouve dans l'illustration. Si c'était le cas, il faut tenter d'abord de désinstaller et réinstaller la distribution Bitnami. Si ça ne marche toujours pas, il faudra installer une autre distribution de PostgreSQL (prière de m'écrire un mail pour me prévenir). | ||
Ligne 30: | Ligne 44: | ||
- | * {{:td_histoire_numerique:bd_et_interface_20151005.zip|Télécharger le fichier}} qui contient la sauvegarde de la base de données | + | * {{:td_histoire_numerique:bd_et_interface_20151005.zip|Télécharger le fichier}} qui contient la sauvegarde de la base de données et le code PHP de l'interface. Ce fichier compressé au format ZIP s'appelle 'bd_et_interface_20151005.zip'. |
- | * Créer un dossier appelé BD_TD2015 et un sous-dossier appelé 'sauvegardes' | + | * Créer sur votre disque dur, dans le dossier que vous aurez préalablement créé pour ce cours, un dossier appelé BD_TD2015 et un sous-dossier appelé 'sauvegardes' |
* Déplacer le fichier téléchargé vers le dossier 'BD_TD2015' et le décompresser (dézipper) | * Déplacer le fichier téléchargé vers le dossier 'BD_TD2015' et le décompresser (dézipper) | ||
+ | * sous Windows, le dossier '__MACOSX' n'a aucune importance, vous pouvez le laisser ou supprimer, tout comme les fichiers '.DS_Store' qui sont des avatars du système MacOS sur lesquels ont été produits les fichiers. Sous MacOS il n'y pas à s'en occuper. | ||
+ | * A l'intérieur du dossier dézippé, le sous-dossier 'TD2015_20151005' contient le code SQL de la sauvegarde de la base de données. En revanche, le dossier 'TD2015' contient le code PHP de l'interface web (cf. ci-dessous). Le premier dossier sera lu et utilisé par le serveur de bases de données 'postgres' et le deuxième sera lu et utilisé par le serveur web 'Apache'. | ||
| | ||
- | * Ouvrir la nouvelle base de données (double-click) | + | |
- | * Restaurer les sauvegardes depuis le dossier dézippé: | + | * Une fois la connexion au serveur de bases de données 'postgres' ouverte en utilisant le client pgAdmin3, et le mot de passé 'avalé', créer une nouvelle base de données appelée 'TD2015'. Dans l'onglet Définition de la boîte de dialogue mettre 'codage' à UTF8, laisser le reste des paramètres par défaut. |
- | * click droit sur la base de données TD2015 et choisir dans le menu contextuel '**Restaurer**' | + | * Si vous aviez déjà créé une base TD2015, il faut la supprimer et en recréer une vide |
- | * chercher le dossier téléchargé et dézippé, ouvrir le fichier **base.backup** | + | * Pour supprimer la base TD2015, visualisez-là dans PgAdmin3, faites un click-droit sur la base, puis choisissez 'supprimer'. |
- | * clicker le bouton 'Restauration' | + | |
- | * Si vous lisez à la fin du log: "Le process a retourné le code de sortie 0." c'est réussi (0 = OK ; 1 = erreur) | + | |
+ | {{ :td_histoire_numerique:suppression_base_donnees.jpg?200 |}} | ||
- | Si tout s'est bien passé la base est installée. Sélectionnez la base TD2015 et rafraichissez (bouton avec les flèches rouges et vertes) | + | * ATTENTION : la base de données 'TD2015' est réservée à l'exercice, n'y mettez jamais des données qui vous appartiennent ! |
+ | * Si vous l'aviez déjà fait, créez provisoirement une nouvelle base de données appelée TD2015bis pour l'exercice | ||
+ | * Voir ci-dessous les indications pour l'installation d'une base personnelle | ||
+ | |||
+ | |||
+ | |||
+ | * Dans PgAdmin3, ouvrez la nouvelle base de données TD2015 (double-click sur la ligne de la base) | ||
+ | * Restaurer les sauvegardes SQL qui se trouvent dans le dossier dézippé 'TD2015_20151005', selon ce procédé: | ||
+ | * procédez exactement dans cet ordre: restaurer le schéma des objets, puis celui des paramètres, puis celui des vues | ||
+ | * ouvrez depuis la base de données TD2015 (sélectionnée, colorée en bleu ou semblable) la boîte de dialogue SQL (la loupe, bouton en haut de la fenêtre) | ||
+ | * depuis la boite de dialogue SQL qui vient d'être ouverte, ouvrez (en clicquant sur le bouton 'dossier jaune' en haut de la fenêtre) [voir image: 1], le dossier téléchargé TD2015_20151005' qui contient la sauvegarde SQL | ||
+ | * ouvrez le document 'objets.sql' (toujours depuis la fenêtre SQL) [2] | ||
+ | |||
+ | {{ :td_histoire_numerique:ouvrir_un_fichier_sql.jpg?200 |}} | ||
+ | |||
+ | * Si vous avez le message tel que affiché dans l'illustration, dites: OK | ||
+ | * Exécuter le script SQL affiché en appuyant sur le bouton en forme de flèche verte [3] | ||
+ | * Si vous lisez à la fin de l'opération: "résultat de la requête de 1 ligne annulé. La **requête a été exécutée avec succès** en 174 ms, mais ne renvoie aucun résultat.", c'est fait ! | ||
+ | * Procédez ensuite à la restauration des schémas (documents .sql) parametres et objets du même dossier, avec la même méthode. | ||
+ | * Répondre 'non' si la boîte de dialogue vous demande si vous voulez enregistrer le script SQL, car il sont déjà enregistrés dans le dossier 'TD2015_20151005' | ||
+ | |||
+ | |||
+ | Si tout s'est bien passé la base est installée. Sélectionnez la base TD2015 (dans PgAdmin3) et rafraichissez (bouton avec les flèches rouges et vertes): quatre schémas vont s'afficher. | ||
+ | |||
+ | ASTUCE: pour prendre la main, réexécutez cette démarche trois fois: supprimez la base de données TD2015 et réinsallez-la à trois reprises. Vous serez alors pleinement familiarisés avec le processus qui ne vous posera plus de difficultés. | ||
\\ | \\ | ||
==== Installation de l'interface ==== | ==== Installation de l'interface ==== | ||
+ | |||
+ | * Prendre le dossier 'TD2015' qui se trouve dans le dossier 'bd_et_interface_20151005' (que vous avez téléchargé et dézippé dans le dossier BD_TD2015) et le mettre dans le dossier 'htdocs' qui se trouve dans l'application Bitnami. Une fois cette opération effectuée, on aura donc ces deux chemins vers le dossier: | ||
+ | * sous Windows : C:\Bitnami\wappstack-5.5.29-1\apache2\htdocs\TD2015 | ||
+ | * sous MacOS : /Applications/mappstack-5.5.29-1/apache2/htdocs/TD2015 | ||
+ | * Dans le dossier TD2015, cherchez le document 'phpgen_settings.php' (avec ou sans suffixe), ouvrez-le avec un éditeur de texte (bloc-notes sous Windows, TextEdit sous MacOS) | ||
+ | * Modifiez le mot de passe en y mettant **votre mot de passe** d'accès au serveur PostgreSQL créé lors de l'installation. Les paramètres se présentent ainsi: <code>function GetGlobalConnectionOptions() | ||
+ | { | ||
+ | return array( | ||
+ | 'server' => 'localhost', | ||
+ | 'port' => '5432', | ||
+ | 'username' => 'postgres', | ||
+ | 'password' => '[votre mot de passe]', | ||
+ | 'database' => 'TD2015' # 'Eventuellement en choisir une autre, par ex. 'bd_perso' | ||
+ | );</code> | ||
+ | * Vérifier avec l'outil de gestion des serveurs que les deux serveurs (PostgreSQL et Apache) tournent (cf. les [[td_histoire_numerique:postgresql&#outil_de_gestion_des_serveurs|indications concernant leurs installation]]) | ||
+ | * Taper cette adresse dans un navigateur web afin d'accéder à la page d'accueil de la base de données: | ||
+ | * http://127.0.0.1:8080/TD2015/accueil.html (version Mac) | ||
+ | * http://127.0.0.1/TD2015/accueil.html (version Windows) | ||
+ | * Après avoir pris connaissance des conditions de la licence, naviguez dans votre base de donnés. | ||
+ | * Si vous deviez tomber sur un message d'erreur, écrivez-moi un mail avec copie d'écran du message. | ||
+ | |||
+ | |||
+ | |||
+ | ==== Mise à jour de la base de données ==== | ||
+ | |||
+ | Version la plus récente de la base de données (permier décembre 2015): {{:td_histoire_numerique:td2015_20151201.zip|télécharger ici}}. | ||
+ | |||
+ | Pour mettre à jour la base de données: | ||
+ | * Attention: cette démarche ne concerne que la base de données–exemple. **Ne pas toucher à sa base personnelle !** | ||
+ | * Lancer le logiciel PgAdmin3 | ||
+ | * Ouvrir la base de données existante et déplier le dossier des schémas | ||
+ | * Supprimer, dans cet ordre, les schémas: vues, paramètres, objets (click droit sur un schéma, puis supprimer ou supprimer en cascade) | ||
+ | * Décompresser le dossier contenant la nouvelle base de données | ||
+ | * Recréer les schémas, selon les indications fournies ci-dessous, dans cet ordre: objets, parametres, vues | ||
+ | * Découvrir le contenu de la nouvelle base de données depuis l'interface | ||
+ | |||
+ | \\ | ||
+ | |||
+ | |||
+ | |||
+ | ===== Installation d'une base de données à usage personnel ===== | ||
+ | |||
+ | |||
+ | ==== Création de la base de données à usage personnel ==== | ||
+ | |||
+ | * On procède de la même manière que pour installer la base TD2015, selon les instructions ci-dessus, en utilisant pgAdmin3. | ||
+ | * La seule différence est qu'on appellera la nouvelle base **'bd_perso'** ou avec tout autre nom qui vous convient. | ||
+ | * Il faut ensuite vider les tables du schéma 'objets' car c'est là qu'on mettra ses propres données | ||
+ | * Pour ce faire, on sélectionne le schéma objets dans pgAdmin3, puis on ouvre la boîte de dialogue SQL qui permet d'exécuter des instructions SQL | ||
+ | * On copie cette instruction <code>truncate table objets.objet restart identity cascade;</code>, on la colle dans la boîte de dialogue SQL et on l'exécute | ||
+ | * Si on voit ce résultat <code>NOTICE: truncate cascades to table "date_objet". NOTICE: truncate cascades to table "nom_objet". La requête a été exécutée avec succès en 21 ms, mais ne renvoie aucun résultat.</code> c'est que tout a été exécuté correctement | ||
+ | * On peut désormais alimenter sa propre base de données, c'est-à-dire créer de nouveaux objets. | ||
+ | * ATTENTION: les tables et vues des schémas 'parametres' et 'vues' ne doivent pas être modifiées d'aucune manière | ||
+ | |||
+ | |||
+ | |||
+ | ==== Création de l'interface de la base de données à usage personnel ==== | ||
+ | |||
+ | * On procède comme pour l'installation de l'interface de la base de données du TD2015, selon les indications données ci-dessus. | ||
+ | * On crée un copie du dossier 'TD2015' qui se trouve dans le dossier 'bd_et_interface_20151005' (que vous avez téléchargé et dézippé dans le dossier BD_TD2015) | ||
+ | * On appelle le dossier-copie 'bd_perso': le contenu sera identique à 'TD2015', seul le nom du dossier change | ||
+ | * Il faut mettre le dossier 'bd_perso' dans 'htdocs' | ||
+ | * Il faut ensuite paramétrer la connexion dans le fichier 'phpgen_settings.php' (avec ou sans suffixe), en l'ouvrant avec un éditeur de texte (bloc-notes sous Windows, TextEdit sous MacOS) | ||
+ | * Il faut mettre votre mot de passe et le nom de la nouvelle base de données: <code>function GetGlobalConnectionOptions() | ||
+ | { | ||
+ | return array( | ||
+ | 'server' => 'localhost', | ||
+ | 'port' => '5432', | ||
+ | 'username' => 'postgres', | ||
+ | 'password' => '[votre mot de passe]', | ||
+ | 'database' => 'bd_perso' # 'Eventuellement en choisir une autre mais il doit être le même que celui de la base postgresql | ||
+ | );</code> | ||
+ | * Taper cette adresse dans un navigateur web afin d'accéder à la page d'accueil de la nouvelle base de données: | ||
+ | * http://127.0.0.1:8080/bd_perso/accueil.html (version Mac) | ||
+ | * http://127.0.0.1/bd_perso/accueil.html (version Windows) | ||
+ | * Après avoir pris connaissance des conditions de la licence, naviguez dans votre base de donnés. | ||
+ | * Si vous deviez tomber sur un message d'erreur, écrivez-moi un mail avec copie d'écran du message. | ||
+ | |||
+ | ASTUCE : avec cette méthode, vous pouvez créer autant de bases de données que vous voulez – mais une suffira en règle générale | ||
+ | |||
+ | |||
+ | |||
+ | ====== Sauvegarde de votre base de données personnelle !!! ====== | ||
+ | |||
+ | |||
+ | IMPORTANT: il faut **effectuer des sauvegardes régulières de votre base de données personnelle** en exportant en format SQL le contenu du schéma 'objets'. Vous pourrez ainsi recréer une copie identique de votre base dans n'importe quel serveur PostgreSQL, par ex. sur un autre ordinateur. | ||
+ | |||
+ | * Ouvrir le client PGAdmin3 et vous connecter à la base de données 'bd_perso' | ||
+ | * Déplier les schémas dans l'arboréscence à gauche | ||
+ | * sélectionner le schéma Objets, faire un click droit et sélectionner la commande sauvegarder{{ :td_histoire_numerique:pgsql_sauvegarde_du_schema.png?100 |}} | ||
+ | * créer –si vous ne l'avez pas déjàfait– un dossier de sauvegarde de vos données dans le dossier du TD ou de votre Master | ||
+ | * atteindre ce dossier par le bouton '...' de la sauvegarde de PGAdminIII qui se trouve à côté du chemin des fichiers dans la boîte de dialogue. | ||
+ | * comme nom du ficher de sauvegarde taper '**schema_objets_20151010.sql**' en indiquant la date du jour en format ISO. Vous saurez ainsi directement à quelle date vous avez effectué la dernière sauvegarde. Vérifiez que le suffixe est bien **.sql**. | ||
+ | * Ensuite paramétrer dans le même onglet: | ||
+ | * Format : **fichier plat** ( ! ) | ||
+ | * Codage : UTF8 | ||
+ | * Le reste : rien à changer ! | ||
+ | * Onglet 'Options 1': cocher 'Ne pas sauvegarder: Propriétaire, Droits'; le reste décoché | ||
+ | * Onglet 'Options 2' : cocher 'Requêtes : Utiliser les colonnes pour les Insert, Utiliser les commandes pour les insert' Le reste décoché, sauf laisser 'Messages en mode verbeux' | ||
+ | * Puis appuyer sur Sauvegarder. | ||
+ | * Si tout se passe bien, la liste des messages termine par 'Le process a retourné le code de sortie 0.' (si c'est '1' il y a un problème, '0' c'est OK) | ||
+ | * Vérifier que vous trouvez le nouveau document dans le dossier 'sauvegardes' sur votre disque dur. | ||
+ | * Ce n'est pas nécessaire de sauvegarder les autres schémas car normalement vous ne les touchez pas. Ils sont donc identiques aux fichiers que je vous ai envoyés. | ||
+ | * Le fichier de sauvegare vous permettra de recréer une copie exacte de votre schéma 'objets', contenant vos propres données, sur un autre serveur (exactement comme on a fait lors de l'installation de la base de données pour le fichier exercice que je vous ai fourni). Donc si votre ordinateur a une défaillance, ou qu'on vous le vole, et si vous avez une copie de ces fichiers sur un disque dur à la maison, vous pourrez recréer votre base sur un nouvel ordinateur. Exactement comme on fait avec un document de traitement de texte. | ||
+ | |||
+ | |||
+ | Le fichier de sortie .sql est un fichier texte, facilement stockable sur une clé USB et très facile à mettre sur n'importe quelle autre plateforme, garantissant ainsi la pérennité de vos données. | ||
+ | |||
+ | Plus tard, vous pourrez aussi m'envoyer ces fichiers et je pourrai voir vos données, vous donner des indications et précisions et vous paramétrer des requêtes d'exploitation, pour vous aider à exploiter vos données. | ||