2015-08-04 1 views
3

Je viens de mettre à jour mon Mac OS X vers Yosemite, version 10.10.4, et postgresql vers: psql (PostgreSQL) 9.4.4.PG :: Mise à niveau de ConnectionBad vers Yosemite et postgresql 9.4.4

Après avoir exécuté rake db: migrer sur mes Rails 4.2.1 l'application, ma session de terminal répond avec:

rake aborted! 
PG::ConnectionBad: could not connect to server: Connection refused 
    Is the server running on host "localhost" (127.0.0.1) and accepting 
    TCP/IP connections on port 5432? 
could not connect to server: Connection refused 
    Is the server running on host "localhost" (::1) and accepting 
    TCP/IP connections on port 5432? 

Entrez simplement psql dans ma session de terminal semble également un peu hors:

$ psql 
psql: could not connect to server: No such file or directory 
    Is the server running locally and accepting 
    connections on Unix domain socket "/tmp/.s.PGSQL.5432"? 

Après avoir imprimé les journaux de, /usr/local/var/postgres/server.log de chat, je lis:

DETAIL: The data directory was initialized by PostgreSQL version 9.3, which is not compatible with this version 9.4.4. 
LOG: skipping missing configuration file "/usr/local/var/postgres/postgresql.auto.conf" 
FATAL: database files are incompatible with server 

J'ai trouvé this answer sur SO, mais j'ai hésité à commencer à créer un tas de répertoires à moins que ce soit vraiment ce que je suis supposé faire. J'ai également trouvé un older answer mais je ne suis pas sûr que ce soit celui à suivre.

Cette SO answer suggère que je supprime un, /usr/local/var/postgres/postmaster.pid, mais je n'en ai pas, j'ai /usr/local/var/postgres/postmaster.opts - devrais-je supprimer le postmaster.opts?

Il semble y avoir beaucoup de conseils, mais je ne sais pas trop quoi suivre. Quelqu'un peut-il donner des conseils pour faire fonctionner ma base de données postgresql sur mon application rails?

Répondre

0

Fondamentalement, je devais supprimer et recréer ma propre base de données et réensemencer avec des données de mise en scène à distance. Ce que je n'ai pas compris, c'est que le problème avec la mise à jour d'une base de données est que les données elles-mêmes doivent aussi être 'mises à jour' d'une certaine manière. Les données étaient compatibles avec une version différente

12

Vous pouvez mettre à jour la base de données en suivant un guide officiel:

brew switch postgres 9.3 # presuming you already installed 9.4.4 
pg_dumpall > outputfile 
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist 
mv /usr/local/var/postgres /usr/local/var/postgres.old 
brew switch postgres 9.4.4 
initdb -D /usr/local/var/postgres 
psql -d postgres -f outputfile 

PostgreSQL upgrade

+0

Certainement le mouvement du nettoyeur. Cela a fonctionné parfaitement pour moi. – Abel

+0

J'ai dû démarrer la DB après 'initdb', avec' launchctl load ~/Bibliothèque/LaunchAgents/homebrew.mxcl.postgresql.plist'. –

+0

moi aussi. si vous utilisez homebrew, redémarrez postgresql avec 'services de brassage restart postgresql' – bryanus