Postgresl veritabanını nasıl yükseltirim? Uyumsuzluk hatası


26

Homebrew aracılığıyla postgresql kurdum.

Yükseltmeden sonra aşağıdaki sorunu yaşıyorum:

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.

Yükseltme hakkında herhangi bir ipucu? Aşağıdakileri denedim:

$ 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

İşe yaramadı. İşte çıktı.

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

hata.

Yanıtlar:


36

Benim için Homebrew ile OS X'de böyle oldu.

  1. Homebrew ile yeni posta kartı yüklendi (hatayı almaya başladı)
  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 (Bu komut dosyası, yukarıdaki adımları uyguladığınızda otomatik olarak geçerli dizinde sizin için oluşturulur)
  6. rm delete_old_cluster.sh

Fantastik ve sadece ne gerekli arkadaşım! Teşekkürler. Özellikle de Leo Leopard'dan bir Lion güncellemesinden sonra. Server.log google insanları kontrol edin !!
Pjammer

Bu benim için mükemmel çalıştı, teşekkürler! Postgres Eğer Homebrew aracılığıyla yüklemiş eğer öyleyse şu adımları yapmadan önce çalışıyor olması gerektiğini Not otomatik başlangıç yapar fırlatma ajanı boşaltmaya emin olun: launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist. Yukarıdaki tüm adımlar tamamlandıktan sonra, tekrar yükleyin:launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Markus Amalthea Magnuson

6

İşte bunu fedorada nasıl yaptım:

  • eski veri dizininizi data.old gibi bir şeyle yeniden adlandırın
  • Çalıştır postgresql-setup initdbbunu yeni bir veri dizini yaratacak
  • o zaman koş pg_upgrade -b /usr/lib64/pgsql/postgresql-9.0/bin/ -B /usr/bin/ -d data.old/ -D data

Bunun olacağını düşünüyorum:

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/
  • Ayrıca pg_hba.conf ve postgresql.conf dosyalarını data.old'dan yeni veri dizinine kopyalamak istersiniz.
  • postgresql'yi yeniden başlat

1

"İnitdb" satırını kaçırdım / unuttum

initdb -D / usr / yerel / var / postgres

DB oluşturulduktan sonra pg_upgrade Windows sistemimde çalıştı.


0

For Arch Linux , bir orada wiki çözüm için beni para cezası çalıştı:

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'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.