Railsのデータベースにpostgresqlを使おうとして
ちょっと前の出来事ですが、記憶とメモを頼りにハマったところをWebに放流します。
君に届け!
背景
RailsのアプリをHerokuにアップするため、データベースをデフォルトのSQLLite3からpostgresqlに変更した時のお話。
Postgres入門
Postgresは起動しなければ使えない!
知りませんでした。そしてハマりました。(2日・3日ぐらい)
今まで使ってきたRailsのデフォルトデータベースであるSQLLite3は、ただなんとなく。で使えちゃってたので、
まさか起動が必要とは!w
考えれば当然かもしれませんが、素人上がりで「パソコンよく分かりませーん」っとか、自分みたいに言ってきた人ならきっとハマるはず。
エラーメッセージで調べたってそれ起動してないじゃんみたいな情報見つけられなかったし、(きっとみんなが恥ずかしくて日記書いてないだけと信じてますよ)
とりあえず、postgres今すぐ起動しましょう!
起動してないと自分の愛しいMBAちゃんではこんな感じのエラーが出ました。
Is the server running on host "localhost" (fe80::1) and acceptingそれともこっちだったかな?
TCP/IP connections on port 5432?
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Postgresダウンロードは下記のサイトから行いました。
http://postgresapp.com/documentation
自分は brew 使わずに app をダウンロードして使ってます。なんかこっちの方使ってよ的なことが書いてあったような気がしたので(英語読めません)
ちなみにbrewとかで入れてターミナルからpostgres起動する場合は、
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log startストップする場合は
pg_ctl -D /usr/local/var/postgres stop -s -m fastらしいですよ。
app の方はクリックしてあげればいいだけなので楽ですね。アイコンでるので起動してるかどうかも一目でわかりますよ
使い方
ココらへんからは、もっといい日記いっぱいあるのでそっち見てもらえばいいかと
http://www.hizlab.net/app/pgsql.html
ざっくりした流れは
- ユーザを作る
- DBを作る
その後Railsで使うには
新規にアプリ作るなら
http://d.hatena.ne.jp/mrkn/20070321/rails_usage
これからやる場合は
GemFileを変更して
config/databese.ymlを
development:とかかな
adapter: postgresql
encoding: unicode
pool: 5
database: 作成したDB
username: ユーザ名
password:
host: localhost
productionの方は特に何もやらずにHerokuが上手くやってくれたっぽいような気がする。