3

Mac OS X を Yosemite バージョン 10.10.4 に更新し、postgresql を psql (PostgreSQL) 9.4.4 に更新しました。

Rails 4.2.1 アプリケーションで rake db:migrate を実行すると、ターミナル セッションが次のように応答します。

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?

端末セッションで psql と入力するだけでも、少しずれているように見えます。

$ 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"?

cat /usr/local/var/postgres/server.log からログを出力した後、次のように読みました。

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

SOでこの回答を見つけましたが、それが本当に私がやろうとしていることでない限り、たくさんのディレクトリを作成することをためらっています。古い回答も見つけましたが、従うべきかどうかはよくわかりません。

このSO の回答は、/usr/local/var/postgres/postmaster.pid を削除することを示唆していますが、/usr/local/var/postgres/postmaster.opts を持っていません。削除する必要があります。 postmaster.opts?

多くのアドバイスがあるようですが、私は何に従うべきかよくわかりません。Railsアプリケーションでpostgresqlデータベースを実行する際に誰かアドバイスをもらえますか?

4

2 に答える 2

12

公式ガイドに従ってデータベースをアップグレードできます。

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 のアップグレード

于 2015-08-04T21:27:22.783 に答える
0

基本的に、自分のデータベースを削除して再作成し、リモート ステージング データを再シードする必要がありました。私が理解できなかったのは、データベースを更新する際の問題は、データ自体も何らかの方法で「更新」する必要があるということです。データは異なるバージョンと互換性がありました

于 2015-08-05T14:29:02.163 に答える