Comment mettre à niveau PostgreSQL de la version 9.6 à la version 10.1 sans perdre de données?

207

J'utilise la base de données PostgreSQL pour mon application Ruby on Rails (sur Mac OS X 10.9).

Existe-t-il des instructions détaillées sur la mise à niveau de la base de données PostgreSQL?

J'ai peur de détruire les données de la base de données ou de les gâcher.

user3675188
la source
8
Faites des sauvegardes dans tous les cas.
Patrick Oscity

Réponses:

402

En supposant que vous avez utilisé Home-Brew pour installer et mettre à niveau Postgres, vous pouvez effectuer les étapes suivantes.

  1. Arrêtez le serveur Postgres actuel:

    launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

  2. Initialisez une nouvelle base de données 10.1:

    initdb /usr/local/var/postgres10.1 -E utf8

  3. exécuter pg_upgrade (note: changer la version du bac si vous effectuez une mise à niveau à partir d'autre chose que ci-dessous) :

    pg_upgrade -v \
        -d /usr/local/var/postgres \
        -D /usr/local/var/postgres10.1 \
        -b /usr/local/Cellar/postgresql/9.6.5/bin/ \
        -B /usr/local/Cellar/postgresql/10.1/bin/

    -v pour activer la journalisation interne détaillée

    -d l'ancien répertoire de configuration du cluster de bases de données

    -D le nouveau répertoire de configuration du cluster de base de données

    -b l'ancien répertoire exécutable de PostgreSQL

    -B le nouveau répertoire exécutable de PostgreSQL

  4. Déplacer de nouvelles données en place:

    cd /usr/local/var
    mv postgres postgres9.6
    mv postgres10.1 postgres
  5. Redémarrez Postgres:

    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

  6. Vérifiez les /usr/local/var/postgres/server.logdétails et assurez-vous que le nouveau serveur a démarré correctement.

  7. Enfin, réinstallez le pgjoyau des rails

    gem uninstall pg
    gem install pg

Je vous suggère de prendre le temps de lire la documentation PostgreSQL pour comprendre exactement ce que vous faites dans les étapes ci-dessus pour minimiser les frustrations.

Donovan
la source
8
Je dois utiliser la commande suivante pour initialiser la base de données:initdb /usr/local/var/postgres9.4 -E utf8 --lc-collate=C --lc-ctype=utf-8 --lc-monetary=C --lc-numeric=C
sunsations
Il suit votre guide étape par étape. Et tout a fonctionné! Merci beaucoup.
Trantor Liu
3
Soyez prudent avec la delete_old_cluster.shcommande. J'ai d'abord supprimé manuellement les répertoires /usr/local/postgres9.3, puis j'ai exécuté cette commande et il semble que j'ai perdu l'intégralité du répertoire / usr / local / var / postgres (j'ai pu le restaurer à partir de Time Machine)
peter_v
1
Si vous utilisez Bundler, vous devez supprimer la gemme en utilisant, gem uninstall pgmais laissez ensuite bundler réinstaller la version correcte de Gemfile.lock en exécutant simplement bundle.
danielricecodes
1
Mise à jour mineure: a brewmaintenant également la possibilité d'utiliser brew services stop postgresqlet brew services start postgresqlau lieu d'appeler directement launchctl unloadet launchctl load.
Florish
59

Malgré toutes les réponses ci-dessus, voici mes 5 cents.

Il fonctionne sur n'importe quel système d'exploitation et à partir de n'importe quelle version postgres.

  • Arrêtez toute instance postgres en cours d'exécution;
  • Installez la nouvelle version et démarrez-la; Vérifiez si vous pouvez également vous connecter à la nouvelle version;
  • Changer l'ancienne version postgresql.conf-> portde 5432à 5433;
  • Démarrez l'ancienne instance de postgres de version;
  • Ouvrez un terminal et cddans le nouveau bindossier de version ;
  • Courir pg_dumpall -p 5433 -U <username> | psql -p 5432 -U <username>
  • Arrêtez les anciennes instances de postgres en cours d'exécution;
Christian
la source
4
Merci Christian, c'est définitivement une excellente solution, j'ai réussi à
passer
3
Fonctionnait à merveille pour la mise à niveau de 9.1 vers 9.5 sur un serveur Windows 2012.
Rolf
4
Un problème de cette solution est que si vous avez modifié certains fichiers de configuration Postgres (par exemple, postgresql.confou pg_hba.conf), vous devrez répliquer manuellement ces modifications dans la nouvelle installation. Au lieu de cela, si vous utilisez pg_upgradecluster, les fichiers de configuration sont copiés dans le nouveau cluster: manpages.ubuntu.com/manpages/precise/man8/…
Alphaaa
1
Notez que juste après avoir démarré la commande, vous obtiendrez une invite de mot de passe, mais vous devrez entrer 2 mots de passe un par un en confirmant chacun par Entrée. Ou vous obtiendrezpg_dumpall: could not connect to database "XXX": fe_sendauth: no password supplied
Lu55
2
Techniquement, cela ne fonctionnera pas pour n'importe quelle version, juste pour les versions sources égales ou supérieures à 7.0, comme l'indique le manuel:Current releases of the dump programs can read data from any server version back to 7.0.
Mark Tielemans
56

Voici la solution pour Ubuntu utilisateurs d'

Nous devons d'abord arrêter postgresql

sudo /etc/init.d/postgresql stop

Créez un nouveau fichier appelé /etc/apt/sources.list.d/pgdg.list et ajoutez la ligne ci-dessous

deb http://apt.postgresql.org/pub/repos/apt/ utopic-pgdg main

Suivez les commandes ci-dessous

wget -q -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql-9.4
sudo pg_dropcluster --stop 9.4 main 
sudo /etc/init.d/postgresql start

Maintenant, nous avons tout, il suffit de le mettre à niveau comme ci-dessous

sudo pg_upgradecluster 9.3 main
sudo pg_dropcluster 9.3 main

C'est tout. Le cluster principalement mis à niveau fonctionnera sur le port numéro 5433. Vérifiez-le avec la commande ci-dessous

sudo pg_lsclusters
pramod
la source
2
L'avant-dernière phrase où vous dites "Le cluster principalement mis à niveau s'exécutera sur le port numéro 5433" devrait probablement dire "Le cluster 9.3 s'exécutera sur le port numéro 5433 afin que vous puissiez revenir si nécessaire".
Andrew Thaddeus Martin
3
Remarque: Pour ubuntu 14.04, utilisez "trusty-pgdb" au lieu de utopic-pgdb
Johnny
3
Notez que cela ne fait PAS de mise à niveau sur place. c'est donc complètement inutile pour ma base de données de 700 Go sur un volume de 1 To.
Fake Name
16

Mise à jour : ce processus est le même pour la mise à niveau de 9.5 à au moins 11.5; modifiez simplement les commandes pour refléter les versions 9.6et 10, où 9.6est l' ancienne version et 10la nouvelle version. Veillez également à ajuster les "anciens" et "nouveaux" répertoires en conséquence.


Je viens de mettre à niveau PostgreSQL 9.5 vers 9.6 sur Ubuntu et j'ai pensé partager mes conclusions, car il y a quelques nuances spécifiques au système d'exploitation / package dont vous devez être conscient.

( Je ne voulais pas devoir vider et restaurer les données manuellement , donc plusieurs des autres réponses ici n'étaient pas viables.)

En bref, le processus consiste à installer la nouvelle version de PostgreSQL avec l'ancienne version (par exemple, 9.5 et 9.6), puis à exécuter le pg_upgradebinaire, qui est expliqué en (certains) détails sur https://www.postgresql.org/ docs / 9.6 / static / pgupgrade.html .

Le seul aspect "délicat" de pg_upgradecet échec est de ne pas transmettre la valeur correcte d'un argument, ou de ne pas être connecté en tant qu'utilisateur correct oucd à l'emplacement correct avant d'exécuter une commande, peut entraîner des messages d'erreur cryptiques.

Sur Ubuntu (et probablement Debian), à condition d'utiliser le référentiel "officiel", deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main , et à condition que vous n'ayez pas changé les chemins par défaut du système de fichiers ou les options d'exécution, la procédure suivante devrait faire le travail.

Installez la nouvelle version (notez que nous spécifions 9.6explicitement le):

sudo apt install postgresql-9.6

Une fois l'installation réussie, les deux versions s'exécuteront côte à côte, mais sur des ports différents. La sortie de l'installation le mentionne en bas, mais il est facile de l'oublier:

Creating new cluster 9.6/main ...
  config /etc/postgresql/9.6/main
  data   /var/lib/postgresql/9.6/main
  locale en_US.UTF-8
  socket /var/run/postgresql
  port   5433

Arrêtez les deux instances de serveur (cela arrêtera les deux en même temps):

sudo systemctl stop postgresql

Passez à l'utilisateur du système PostgreSQL dédié:

su postgres

Déplacez-vous dans son répertoire personnel (ne pas le faire entraînera des erreurs):

cd ~

pg_upgrade nécessite les entrées suivantes ( pg_upgrade --helpnous le dit):

When you run pg_upgrade, you must provide the following information:
  the data directory for the old cluster  (-d DATADIR)
  the data directory for the new cluster  (-D DATADIR)
  the "bin" directory for the old version (-b BINDIR)
  the "bin" directory for the new version (-B BINDIR)

Ces entrées peuvent être spécifiées avec des "noms longs", pour les rendre plus faciles à visualiser:

  -b, --old-bindir=BINDIR       old cluster executable directory
  -B, --new-bindir=BINDIR       new cluster executable directory
  -d, --old-datadir=DATADIR     old cluster data directory
  -D, --new-datadir=DATADIR     new cluster data directory

Nous devons également passer le --new-optionscommutateur, car le non-respect entraîne les conséquences suivantes:

connection to database failed: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/var/lib/postgresql/.s.PGSQL.50432"?

Cela se produit car les options de configuration par défaut sont appliquées en l'absence de ce commutateur, ce qui entraîne l'utilisation d'options de connexion incorrectes, d'où l'erreur de socket.

Exécutez la pg_upgradecommande à partir de la nouvelle version de PostgreSQL:

/usr/lib/postgresql/9.6/bin/pg_upgrade --old-bindir=/usr/lib/postgresql/9.5/bin --new-bindir=/usr/lib/postgresql/9.6/bin --old-datadir=/var/lib/postgresql/9.5/main --new-datadir=/var/lib/postgresql/9.6/main --old-options=-cconfig_file=/etc/postgresql/9.5/main/postgresql.conf --new-options=-cconfig_file=/etc/postgresql/9.6/main/postgresql.conf

Déconnexion du compte utilisateur système dédié:

exit

La mise à niveau est maintenant terminée, mais la nouvelle instance se liera au port 5433(la valeur par défaut standard est 5432), alors gardez cela à l'esprit si vous essayez de tester la nouvelle instance avant de la "couper".

Démarrez le serveur comme d'habitude (encore une fois, cela démarrera à la fois l'ancienne et la nouvelle instance):

systemctl start postgresql

Si vous souhaitez /etc/postgresql/9.6/main/postgresql.confdéfinir la nouvelle version par défaut, vous devrez modifier le fichier de configuration efficace, par exemple , et vous assurer que le port est défini comme tel:

port = 5432

Si vous faites cela, modifiez le numéro de port de l'ancienne version 5433en même temps (avant de démarrer les services), ou supprimez simplement l'ancienne version (cela ne supprimera pas le contenu de votre base de données réelle; vous devrez l'utiliser apt --purge remove postgresql-9.5pour que cela se produise ):

apt remove postgresql-9.5

La commande ci-dessus arrêtera toutes les instances, vous devrez donc démarrer la nouvelle instance une dernière fois avec:

systemctl start postgresql

Enfin, n'oubliez pas de considérer pg_upgradeles bons conseils de:

Upgrade Complete
----------------
Optimizer statistics are not transferred by pg_upgrade so,
once you start the new server, consider running:
    ./analyze_new_cluster.sh

Running this script will delete the old cluster's data files:
    ./delete_old_cluster.sh
Ben Johnson
la source
1
Pour moi, dans Mac Yosemite, PostgreSQL 9.2 -> 9.5 sudo su postgres:, changez toutes les METHOD dans les deux installations pg_hba.conf pour faire confiance avant pg_upgrade, exécuter pg_upgrade dans / private / tmp pas ~ n'a pas fonctionné sudo mkdir /foobaravec chmod 777 /foobaret l'a exécuté là-bas. Enfin la commande pg_upgrade:/Library/PostgreSQL/9.5/bin/pg_upgrade -b /Library/PostgreSQL/9.2/bin -B /Library/PostgreSQL/9.5/bin -d /Library/PostgreSQL/9.2/data -D /Library/PostgreSQL/9.5/data -o -cconfig_file=/Library/PostgreSQL/9.2/data/postgresql.conf -O -cconfig_file=/Library/PostgreSQL/9.5/data/postgresql.conf
Jarno Argillander
1
j'ai pu mettre à niveau avec succès de 9.5 à 11.5 a dû ajouter des référentiels apt postgres à ubuntu. puis suivez ces étapes: tecadmin.net/install-postgresql-server-on-ubuntu
shakee93
14

Si vous utilisez des services homebrew et homebrew, vous pouvez probablement simplement faire:

brew services stop postgresql
brew upgrade postgresql
brew postgresql-upgrade-database
brew services start postgresql

Je pense que cela pourrait ne pas fonctionner complètement si vous utilisez des fonctionnalités avancées de postgres, mais cela a parfaitement fonctionné pour moi.

jnmandal
la source
1
Fonctionne parfaitement pour macOS Mojave 10.14.2 - Merci!
8bithero
13

Le manuel de l'utilisateur couvre ce sujet en profondeur. Vous pouvez:

  • pg_upgradeen place; ou

  • pg_dumpet pg_restore.

En cas de doute, faites-le avec des décharges. Ne supprimez pas l'ancien répertoire de données, conservez-le simplement en cas de problème / vous faites une erreur; de cette façon, vous pouvez simplement revenir à votre installation 9.3 inchangée.

Pour plus de détails, consultez le manuel.

Si vous êtes bloqué, postez une question détaillée expliquant comment vous êtes bloqué, où et ce que vous avez essayé en premier. Cela dépend aussi un peu de la façon dont vous avez installé PostgreSQL, car il existe plusieurs "distributions" différentes de PostgreSQL pour OS X (malheureusement). Vous devez donc fournir ces informations.

Craig Ringer
la source
8

Debout sur les épaules des autres pauvres créatures marchant à travers cette boue, j'ai pu suivre ces étapes pour me remettre en marche après une mise à niveau vers Yosemite:

En supposant que vous avez utilisé Home-Brew pour installer et mettre à niveau Postgres, vous pouvez effectuer les étapes suivantes.

  1. Arrêtez le serveur Postgres actuel:

    launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

  2. Initialisez une nouvelle base de données 9.4:

    initdb /usr/local/var/postgres9.4 -E utf8

  3. Installez postgres 9.3 (car il n'était plus présent sur ma machine):

    brew install homebrew/versions/postgresql93

  4. Ajouter des répertoires supprimés lors de la mise à niveau de Yosemite:

    mkdir -p /usr/local/var/postgres/{pg_tblspc,pg_twophase,pg_stat_tmp}/touch /usr/local/var/postgres/{pg_tblspc,pg_twophase,pg_stat_tmp}/.keep

  5. exécuter pg_upgrade:

    pg_upgrade -v -d /usr/local/var/postgres -D /usr/local/var/postgres9.4 -b /usr/local/Cellar/postgresql93/9.3.5/bin/ -B /usr/local/Cellar/postgresql/9.4.0/bin/

  6. Déplacer de nouvelles données en place:

    cd /usr/local/var
    mv postgres postgres9.3
    mv postgres9.4 postgres
  7. Redémarrez Postgres:

    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

  8. Vérifiez les /usr/local/var/postgres/server.logdétails et assurez-vous que le nouveau serveur a démarré correctement.

  9. Enfin, réinstallez les bibliothèques associées?

    pip install --upgrade psycopg2
    gem uninstall pg
    gem install pg
Josh
la source
1
pg_upgrade -v -d / usr / local / var / postgres -D /usr/local/var/postgres9.4 -b /usr/local/Cellar/postgresql93/9.3.*/bin/ -B / usr / local / Cellar /postgresql/9.4.*/bin/ # Les versions mineures peuvent être différentes.
Aaron McMillin
1
Merci pour cela. J'ai accidentellement exécuté brew cleanupavant de migrer les données et cela a entraîné la désinstallation de postgres9.3. Cela a aidé. :)
markquezada
5

Il semble que la solution ait été intégrée à Homebrew maintenant:

$ brew info postgresql
...
==> Caveats
To migrate existing data from a previous major version of PostgreSQL run:
  brew postgresql-upgrade-database
....
Steven Shaw
la source
1

Cela l'a fait pour moi.

https://gist.github.com/dideler/60c9ce184198666e5ab4

Court et précis. Honnêtement, je ne vise pas à comprendre les tripes de PostgreSQL, je veux faire avancer les choses.

dimitarvp
la source
1
Cela utilise l'outil pg_upgradecluster d'Ubuntu qui peut être beaucoup plus lent que l'outil pg_upgrade de PostgreSQL et bien sûr n'est disponible que sur Ubuntu.
alfonx
@alfonx Pas vrai. Je l'ai sur ma Debian jessie. Avait plus de 10 bases de données et une quantité d'environ 400 Mo de données de base de données a été convertie en un clin d'œil. Là encore, j'utilise une Debian virtuelle sur un SSD.
dimitarvp
Permettez-moi de me corriger: pg_upgradecluster fait partie de "l'infrastructure Debian PostgreSQL", donc uniquement disponible sur les distributions basées sur Debian. À propos de la vitesse pg_upgrade propose l'option "--link", qui relie la non-copie des données lorsque cela est possible: postgresql.org/docs/9.4/static/pgupgrade.html
alfonx
1
Nous visons peut-être des résultats différents. Après une mise à niveau du logiciel à l'échelle de la distribution, je me suis retrouvé avec 2 versions de PostgreSQL et les données utilisées par mes projets étaient bloquées sur l'ancienne version (9.3). Je viens donc de rechercher le lien ci-dessus (dans ma réponse) et de le mettre à jour, de me débarrasser de l'ancien "cluster" et de l'ancienne version PG.
dimitarvp
J'ai essayé de passer de 9.4 à 11 avec pg_upgradecluster 9.4 mainmais j'obtiens l'erreur Erreur: specified cluster does not exist... Je suppose que je dois d'abord réinstaller postgresql-9.4 avec ce guide: wiki.postgresql.org/wiki/Apt#Quickstart
rubo77
1

Sous Windows, je faisais face à différents messages d'erreur lorsque j'essayais de l'utiliser pg_upgrade.

J'ai économisé beaucoup de temps pour:

  1. DB de sauvegarde
  2. Désinstaller toutes les copies de PostgreSQL
  3. Installer 9.5
  4. Restaurer la base de données
Andrew
la source
A fait cela de 9,5 à 9,6 et a parfaitement fonctionné. C'est bien aussi de pouvoir effectuer une mise à niveau exacte facile, plutôt que «la dernière». J'ai utilisé Big SQL pour obtenir le bon programme d'installation ( openscg.com/bigsql/postgresql/installers.jsp ).
The Coder
0

Ma solution a été de combiner ces deux ressources:

https://gist.github.com/tamoyal/2ea1fcdf99c819b4e07d

et

http://www.gab.lc/articles/migration_postgresql_9-3_to_9-4

Le second un a aidé plus alors le premier. De plus, ne suivez pas les étapes telles quelles car certaines ne sont pas nécessaires. De plus, si vous ne pouvez pas sauvegarder les données via la console postgres, vous pouvez utiliser une approche alternative et la sauvegarder avec pgAdmin 3 ou un autre programme, comme je l'ai fait dans mon cas.

En outre, le lien: https://help.ubuntu.com/stable/serverguide/postgresql.html A aidé à définir le mot de passe crypté et à définir md5 pour authentifier l'utilisateur postgres.

Après tout, pour vérifier la serverversion postgres exécutée dans le terminal:

sudo -u postgres psql postgres

Après avoir entré le mot de passe exécuté dans le terminal postgres:

SHOW SERVER_VERSION;

Il produira quelque chose comme:

 server_version 
----------------
 9.4.5

Pour définir et démarrer postgres, j'ai utilisé la commande:

> sudo bash # root
> su postgres # postgres

> /etc/init.d/postgresql start
> /etc/init.d/postgresql stop

Et puis pour restaurer la base de données à partir d'un fichier:

> psql -f /home/ubuntu_username/Backup_93.sql postgres

Ou si cela ne fonctionne pas, essayez avec celui-ci:

> pg_restore --verbose --clean --no-acl --no-owner -h localhost -U postgres -d name_of_database ~/your_file.dump

Et si vous utilisez Rails, faites un bundle exec rake db:migrateaprès avoir tiré le code :)

Aleks
la source
0

Pour Mac via homebrew:

brew tap petere/postgresql,

brew install <formula>(par exemple brew install petere/postgresql/postgresql-9.6)

Supprimer les anciens Postgres:

brew unlink postgresql

brew link -f postgresql-9.6

En cas d'erreur, n'oubliez pas de lire et de suivre les instructions de brassage à chaque étape.

Vérifiez cela pour plus: https://github.com/petere/homebrew-postgresql

ThangTD
la source
0

Sur Windows 10 depuis que j'avais npm, j'ai installé le paquet rimraf. npm install rimraf -g

Sauvegardez toutes vos bases de données une par une en utilisant la commande pg_dump -U $username --format=c --file=$mydatabase.sqlc $dbname

Ensuite, j'ai installé la dernière version de PostgreSQL, c'est-à-dire 11.2, ce qui m'a incité à utiliser le port 5433 cette fois.

Suivi par la désinstallation des anciennes versions de PostgreSQL, la mienne était de 10. Notez que le programme de désinstallation peut donner un avertissement de ne pas supprimer le dossier C:\PostgreSQL\10\data. C'est pourquoi nous avons l'étape suivante en utilisant rimraf pour supprimer définitivement le dossier et ses sous-dossiers.

changez dans le répertoire d'installation de PostgreSQL et exécutez la commande rimraf 10. 10 est un nom de répertoire. Notez utiliser votre ancienne version de PostgreSQL c'est-à-dire 9.5 ou quelque chose.

Ajoutez maintenant C:\PostgreSQL\pg11\bin, C:\PostgreSQL\pg11\libdans les variables d'environnement Windows. Notez que ma nouvelle version installée est 11, c'est pourquoi j'utilise pg11.

Accédez à, C:\PostgreSQL\data\pg11puis ouvrez la postgresql.confmodification port = 5433pourport = 5432

C'est tout. Ouvrez cmd et tapezpsql -U postgres

Vous pouvez maintenant restaurer toutes vos bases de données sauvegardées une par une en utilisant la commande pg_restore -U $username --dbname=$databasename $filename

STREET MONEY
la source
0

Ma solution pour la mise à niveau de Postgresql 11 vers Postgresql 12 sur Windows 10 est la suivante.

En premier lieu, vous devrez pouvoir arrêter et démarrer le service Postgresql. Pour ce faire, utilisez les commandes suivantes dans Powershell.

Début: pg_ctl start -D “d:\postgresql\11\data”

Arrêtez: pg_ctl stop -D “d:\postgresql\11\data”

Statut: pg_ctl status -D “d:\postgresql\11\data”

Il serait sage de faire une sauvegarde avant de faire la mise à niveau. L'instance Postgresql 11 doit être en cours d'exécution. Ensuite, pour copier les globaux, faites

pg_dumpall -U postgres -g -f d:\bakup\postgresql\11\globals.sql

puis pour chaque base de données

pg_dump -U postgres -Fc <database> > d:\backup\postgresql\11\<database>.fc

ou

pg_dump -U postgres -Fc -d <database> -f d:\backup\postgresql\11\<database>.fc

Si ce n'est pas déjà fait, installez Postgresql 12 (car Postgresql 11 est également installé, ce sera sur le port 5433)

Ensuite, effectuez la mise à niveau comme suit:

1) Arrêtez le service Postgresql 11 (voir ci-dessus)

2) Modifiez le postgresql.conffichier d:\postgresql\12\dataet passez port = 5433àport = 5432

3) Modifiez le chemin de l'environnement utilisateur Windows ( windows startpuis tapezenv ) pour pointer vers Postgresql 12 au lieu de Postresql 11

4) Exécutez la mise à niveau en entrant la commande suivante.

pg_upgrade `
-b c:\program files\postgresql\11\bin `
-B c:\program files\postgresql\12\bin `
-d d:\postgresql\11\data `
-D d:\postgresql\12\data --username=postgres

(Dans PowerShell, utilisez le backtick (ou le backquote) `pour continuer la commande sur la ligne suivante)

5) et enfin lancer le nouveau service Postgresql 12

pg_ctl start -D “d:\postgresql\12\data”

Bruno Vermeulen
la source
-1

Je pense que c'est le meilleur lien pour votre solution pour mettre à jour les postgres en 9.6

https://sandymadaan.wordpress.com/2017/02/21/upgrade-postgresql9-3-9-6-in-ubuntu-retaining-the-databases/
zulqarnain nazir
la source