07/05/2020Sous Windows, l'installeur de PostgreSQL place les fichiers de base de données par défaut dans c:\Program Files\PostgreSQL\[Version]\data (s'il s'agit de la version 12, ce sera c:\Program Files\PostgreSQL\12\data). Cependant, si la base de données grossit en volume, vous pouvez avoir besoin de la déplacer sur un autre lecteur disposant de plus d'espace.
Voici comment déplacer les données de la base vers un autre répertoire en conservant le moteur du SGBD à son emplacement initial. Il faudra bien sûr adapter les commandes ci-dessous à vos propres paramètres car je présente ici une installation de PostgreSQL v11 en 64 bits :
- Tout d'abord, assurez-vous du chemin actuel de la base. Lancez la requête suivante, qui va afficher le répertoire de stockage des bases de données :
Elle devrait afficher une réponse similaire à celle-ci :
- Arrêtez le service Windows de PostgreSQL : allez dans Panneau de configuration / Outils d'administration/ Services, sélectionnez le service "postgresql" (il faut bien sûr éviter d'avoir des requêtes en cours d'exécution) puis clic-droit et "Arrêter".
- Créez votre répertoire destination sur le lecteur de votre choix (par exemple d:\postgreSQL\11\data).
- Déplacez-y tous les fichiers présents dans le répertoire donné dans la première étape. Donc de c:\Program Files\PostgreSQL\11\data vers d:\postgreSQL\11\data.
- Allez dans la base de registres pour modifier les références à l'ancien chemin :
- Dans HKLM\SOFTWARE\PostgreSQL\Installations\postgresql-x64-11, modifiez la donnée "Data Directory" pour refléter le nouveau chemin.
- Juste en dessous, dans HKLM\SOFTWARE\PostgreSQL\Services\postgresql-x64-11, modifiez également la donnée "Data Directory".
- Dans HKLM\SYSTEM\ConstrolSet002\services\postgresql-x64-11, modifiez la variable "ImagePath". Ce paramètre est utilisé directement par le service (étape 2).
- Modifiez les scripts présents dans le répertoire de PostgreSQL :
- Éditez le fichier c:\Program Files\PostgreSQL\11\pg_env.bat et modifiez la ligne qui spécifie la valeur de PGDATA (ligne 5)
- Éditez le fichier c:\Program Files\PostgreSQL\11\serverctl.vbs et modifiez la ligne 29
- Redémarrez le service de PostgreSQL, arrêté à l'étape 2.
Si vous avez suivi toutes les étapes, le SGBD PostgreSQL doit démarrer depuis le nouveau répertoire. Vous pouvez réexécuter l'étape 1 et tester les données pour vous assurer que tout est correct.
Dernière modification le 07/05/2020 - Quillevere.net