11

私は RoR の初心者で、次のアプリを heroku にデプロイしようと考えています。最もスムーズな移行のために、開発環境とテスト環境を本番環境と一致させたいと考えています。そのため、システムにpostgresqlをインストールしました。このプロセスはイライラする以上のものであり、私は混乱していません. 私は数え切れないほどのチュートリアルに従ったが役に立たなかった. 多くの人が矛盾する情報を持っているようだ. これが私が知っていることです:

postgresql をインストールするには多くの方法があります。一般的なオプションは、macports、homebrew、fink、Postgresql.app、または enterpriseDB です。前のいずれかをインストールしたら、Rails アプリを作成し、次のいずれかを実行する必要があります。

rails new <app_name> -d postgresql

または、標準の「rails new」を実行してから、gemfile で「sqlite3」を「pg」に変更します。次に、私が正しければ、実際にはコマンドラインで次のようにして独自のデータベースを作成する必要があります。

$ psql
$ CREATE DATABASE your_database_name;

次に、database.yml を編集して、これに近いものに従います。

development:
  adapter: postgresql
  encoding: unicode
  database: <your_database_name>
  host: localhost
  pool: 5
  username: <username>
  password:

それが完了したら、すべてがうまくいくはずです。しかし、私は問題を抱えています。上記のプロセスを使用して実際に動作させていますが、どのように動作しているのか混乱しています。これらすべてを機能させるために何時間も試みている間に、macports、homebrew、および postgresql.app をインストールしました。ただし、postgresql.app を実行せずにデータベース (「rake db:migrate」など) と対話しようとすると、次のエラーが発生します。

could not connect to server: Connection refused
    Is the server running on host "localhost" (::1) and accepting
    TCP/IP connections on port 5432?
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" (fe80::1) and accepting
    TCP/IP connections on port 5432?

再起動すれば、すべて問題ありません。わかりましたので、私のシステムは postgresql.app を使用して postresql を実行していると思います。その情報を使用して、私は自信を持って macports と postgresql の hombrew インストールをアンインストールします。ただし、そうすると、データベースとやり取りしようとすると次のエラーが発生します。

Library not loaded: /usr/local/lib/libpq.5.4.dylib (LoadError)

Macports を再インストールしても、同じエラーが発生します。次に、自作を再インストールすると、エラーはなくなります。その後、macports を再度アンインストールしますが、すべて問題ありません。postgresql.app と私の自作インストールは何らかの形で相互に依存しているようです。私が正しければ、それぞれがpostgreqlのフルインストールであるため、それらは互いに独立して実行できるはずです。この時点で、私はほとんどアイデアがありません。このプロセスがどのように行われるか、何が起こっているかについてのすべての情報は、非常に高く評価されます。

編集

$ which psql

ショー:

/usr/local/bin/psql

ls -l /usr/local/bin/psql

ショー:

lrwxr-xr-x  1 robertquinn  admin  35 Jul 29 17:32 /usr/local/bin/psql -> ../Cellar/postgresql/9.1.4/bin/psql 
4

1 に答える 1

7

Homebrew は間違いなく進むべき道です。Macports を何年も使用した結果、Homebrewの使用、アップグレード、保守がはるかに簡単であることがわかりました。

Homebrew を初めて使用する場合、何かをインストールするときに、インストールの最後に追加のタスクを提供する出力が表示されることがあります。インストール時に、新しいリンクを手動で作成するように求められることもあれば、セラーにある新しい実行可能ファイルとのリンクをやり直すように求められることもあります。必ずその出力を読み、インストール後の指示に従ってください。

これらの指示に従ったら、新しいターミナル ウィンドウを開いて、設定が尊重されていることを確認します。

また、 を使用する場合、もちろんユーザー名とパスワードを使用するように postgres インスタンスを構成していない限り、ファイルは既に正しく構成されているはずですrails new app_name -D postgresqldatabase.yml

postgresの開始と停止を簡単にするために、これらのコマンドを.profileファイルに追加しました

# postgres
alias pg_start="pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start"
alias pg_stop="pg_ctl -D /usr/local/var/postgres stop -s -m fast"
于 2012-08-05T16:13:55.497 に答える