Bagaimana cara meningkatkan basis data postgresl? Kesalahan inkompatibilitas


26

Saya menginstal postgresql via Homebrew.

Saya memiliki masalah berikut setelah peningkatan:

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.

Adakah tips tentang cara meningkatkan? Saya mencoba yang berikut ini:

$ 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

Itu tidak berhasil. Inilah hasilnya.

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

kesalahan.

Jawaban:


36

Bagi saya di OS X dengan Homebrew rasanya seperti ini.

  1. Menginstal postgres baru dengan Homebrew (mulai mendapatkan kesalahan)
  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 (skrip ini dibuat untuk Anda secara otomatis dalam direktori saat ini ketika Anda melewati langkah-langkah di atas)
  6. rm delete_old_cluster.sh

Fantastis dan hanya apa yang saya butuhkan teman! Terima kasih. Terutama setelah upgrade Lion datang dari Snow Leopard. Periksa server.log orang google !!
pjammer

Ini bekerja dengan baik untuk saya, terima kasih! Perhatikan bahwa postgres tidak harus menjalankan sebelum melakukan langkah-langkah ini, jadi jika Anda telah menginstal melalui Homebrew pastikan untuk membongkar agen peluncuran yang membuatnya dimulai secara otomatis: launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist. Setelah semua langkah di atas selesai, baru muat lagi:launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Markus Amalthea Magnuson

6

Begini cara saya melakukannya di fedora:

  • ganti nama direktori data lama Anda menjadi sesuatu seperti data.old
  • jalankan postgresql-setup initdbini akan membuat direktori data baru
  • lalu lari pg_upgrade -b /usr/lib64/pgsql/postgresql-9.0/bin/ -B /usr/bin/ -d data.old/ -D data

Saya pikir untuk Anda itu adalah:

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/
  • Anda juga ingin menyalin pg_hba.conf dan postgresql.conf dari data.old ke direktori data baru.
  • restart postgresql

1

Saya melewatkan / lupa baris "initdb"

initdb -D / usr / local / var / postgres

Setelah DB dibuat, pg_upgrade bekerja pada sistem windows saya.


0

Untuk Arch Linux , ada solusi di wiki yang bekerja dengan baik untuk saya:

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'
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.