2012-07-30 11 views
9

私はRoRにはかなり新しいので、私はherokuに次のアプリを配備しようとしています。私は私の開発&のテスト環境を、最もスムーズな移行のための私の生産環境に合わせたいと思っています。そのため、私は自分のシステムにpostgresqlをインストールしました。このプロセスは、イライラさせる以上のものであり、私は混乱しています。無数のチュートリアルに従って無駄になり、多くの人が矛盾する情報を持っているようです。ここに私が知っているものがあります:Postgresql.app vs Homebrew

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

rails new <app_name> -d postgresql 

をまたは標準を実行して、あなたのgemfileの「PG」に「sqlite3の」を変更し、「新しいレール」と。その後、私は正しいだ場合、あなたが実際にこれを行うことにより、コマンドラインで独自のデータベースを作成する必要があります。

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

その後
$ psql 
$ CREATE DATABASE your_database_name; 

、これに近いものを追跡するためにあなたのdatabase.ymlを編集

これが完了したら、すべて正常でなければなりません。しかし、私は問題を抱えています。私は実際に上記のプロセスを使って作業していますが、どのように動作しているのか混乱しています。これをすべて動作させようとしている間、私はmacports、homebrew、およびpostgresql.appをインストールしました。しかし、私は(このような「すくいデシベル:移行」など)のデータベースと対話しようとするたびpostgresql.appランニングなしで、私はこのエラーを取得する:私はバックアップそれを発射した場合

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を実行していると仮定しています。その情報で、私は自信を持ってmacportをアンインストールし、postgresqlのインストールを強化しました。ただし、データベースとやり取りしようとすると、このエラーが発生します。

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

私はmacportsを再インストールしても、同じエラーが発生します。その後、私は自家製のものを再インストールし、エラーは消え去る。私は再びmacportsをアンインストールし、すべてが正常です。それは、postgresql.appと私の自作のインストールは、どういうわけか、お互いに依存しているようです。私が正しいとすれば、それぞれがpostgreqlを完全にインストールしているので、それぞれ独立して動くはずです。私はこの時点でかなりのアイデアから抜け出しています。どのようなことが起こっているのか、このプロセスがどのように行われているかについてのすべての入力は、非常に高く評価されます。

EDIT

$ 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 
+1

私の推測では、あなたのPostgresサーバがpostgres.appの下で実行されている私は私の.profileファイルにこれらのコマンドを追加して、起動と停止postgresのを容易にするために、しかし、あなたのコマンドライン・パスは、自作の実行ファイルを指しています? 'どのpsql'が表示されますか?そして、 'ls -l'そのパス – house9

+0

が編集で追加されました – flyingarmadillo

+1

Cellarは自家製のインストール先です。あなたのパスにpostgres.appを追加しようとすることができます。http://postgresapp.com/documentation – house9

答えて

5

自作自作です。 Macportsを使って何年も経ってから、Homebrew の多くはが使いやすく、アップグレードされ、維持されています。

ホームブリューを初めてお使いの場合、何かをインストールすると、インストールの最後に出力が表示され、追加の作業が行われます。場合によっては、手動で新しいリンクを作成するように要求されることもあります。時には、セカンダリの新しい実行ファイルとのリンクをやり直すように指示することもあります。その出力を読み、インストール後の指示に従ってください。

これらの指示に従ったら、新しい端末ウィンドウを開いて設定を尊重してください。

また、rails new app_name -D postgresqlを使用する場合は、ユーザー名とパスワードを使用するようにpostgresインスタンスを設定していない限り、database.ymlファイルが正しく設定されている必要があります。

# 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" 
+0

これを解決するために実際に何を投稿したのですか?私は@flyingarmadilloと全く同じ場所にいます – ajbraus

+0

@ajbrausどこに問題がありますか?私がエイリアス化した上記のコマンドは、ポストグルを開始および停止するコマンドです。開始するには、(あなたの端末に) 'pg_ctl -D/usr/local/var/postgres -l /usr/local/var/postgres/server.log start'と入力します。これは理にかなっていますか? – sorens

+0

私はこれを取得します: サーバ起動 sh:/usr/local/var/postgres/server.log:いいえそのようなファイルやディレクトリ –

関連する問題