Frage Wie aktualisiere ich die postgresl-Datenbank? Inkompatibilitätsfehler


Ich habe postgresql über Homebrew installiert.

Ich habe das folgende Problem nach dem Upgrade:

FATAL: database files are incompatible with server DETAIL: The data directory was initialized by PostgreSQL version 9.0, which is not compatible with this version 9.1.2.

Irgendwelche Tipps zum Upgrade? Ich habe Folgendes versucht:

$ pg_upgrade -d /usr/local/var/postgres/ -D /usr/local/var/postgres -b 
/usr/local/Cellar/postgresql/9.0.4/bin -B /usr/local/Cellar/postgresql/9.1.2/bin

Es hat nicht funktioniert. Hier ist die Ausgabe.

Performing Consistency Checks
Checking current, bin, and data directories                 ok
Checking cluster versions                                   
This utility can only upgrade to PostgreSQL version 9.1.
Failure, exiting

Error.


25
2017-12-20 06:51


Ursprung




Antworten:


Für mich auf OS X mit Homebrew war es so.

  1. Installierte neue Postgres mit Homebrew (begann den Fehler zu bekommen)
  2. mv /usr/local/var/postgres /usr/local/var/postgres.old
  3. initdb -D /usr/local/var/postgres
  4. pg_upgrade -b /usr/local/Cellar/postgresql/9.0.4/bin -B /usr/local/Cellar/postgresql/9.1.2/bin -d /usr/local/var/postgres.old -D /usr/local/var/postgres
  5. ./delete_old_cluster.sh (Dieses Skript wird für Sie automatisch im aktuellen Verzeichnis erstellt, wenn Sie die obigen Schritte durchlaufen)
  6. rm delete_old_cluster.sh

35
2018-01-24 03:43



Fantastisch und genau das, was ich brauchte Freund! Vielen Dank. Besonders nach einem Lion Upgrade von Snow Leopard. Überprüfen Sie die server.log Google Leute !! - pjammer
Das hat perfekt für mich funktioniert, danke! Beachten Sie, dass Postgres nicht ausgeführt werden dürfen, bevor Sie diese Schritte ausführen. Wenn Sie es über Homebrew installiert haben, stellen Sie sicher, dass Sie den Start-Agent entladen, der ihn automatisch startet: launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist. Nachdem alle oben genannten Schritte ausgeführt wurden, laden Sie sie erneut: launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist - Markus Amalthea Magnuson
das braucht mehr Aufmerksamkeit, danke! - Maxim Zubarev


Hier ist, wie ich es auf Fedora gemacht habe:

  • Benennen Sie Ihr altes Datenverzeichnis in etwas wie data.old um
  • Lauf postgresql-setup initdb Dadurch wird ein neues Datenverzeichnis erstellt
  • dann renne pg_upgrade -b /usr/lib64/pgsql/postgresql-9.0/bin/ -B /usr/bin/ -d data.old/ -D data

Ich denke für dich wäre das:

pg_upgrade -b /usr/local/Cellar/postgresql/9.0.4/bin -B /usr/bin/ -d /usr/local/var/postgres.old/ -D /usr/local/var/postgres/
  • Sie möchten auch pg_hba.conf und postgresql.conf von data.old kopieren in das neue Datenverzeichnis.
  • postgresql neu starten

6
2017-12-20 07:39





Ich habe die "initdb" Zeile verpasst / vergessen

initdb -D / usr / local / var / postgres

Nachdem die DB erstellt wurde, hat pg_upgrade auf meinem Windows-System funktioniert.


1
2017-11-09 13:24





Zum Arch Linux, da ist ein Lösung im Wiki das hat gut für mich funktioniert:

pacman -S --needed postgresql-old-upgrade
su -
su - postgres -c 'mv /var/lib/postgres/data /var/lib/postgres/data-9.2'
su - postgres -c 'mkdir /var/lib/postgres/data'
su - postgres -c 'initdb --locale en_US.UTF-8 -E UTF8 -D /var/lib/postgres/data'
su - postgres -c 'pg_upgrade -b /opt/pgsql-9.2/bin/ -B /usr/bin/ -d /var/lib/postgres/data-9.2 -D /var/lib/postgres/data'

0
2017-10-30 18:58