macosxにpostgres9.0.4をインストール
macosxで作りはじめたrails3アプリ、データベースをsqlite3からpostgresに切り替える。
※rvmとrails3とmacportsはインストール済みの前提。
$ gem install pg
pg_configがないぞ、というエラー。
checking for pg_config... no No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config
そこでmacportsでpostgresをインストールすることにした。以下、その手順。
最近portsを使っていなかったので、
$ sudo port selfupdate
パッケージ名を調べる
$ port search postgres
バージョン9.0.4をインストールする。
$ sudo port install postgresql90 $ sudo port install postgresql90-server
表示されたメッセージに従って以下の手順。
$ sudo port load postgresql90-server $ sudo mkdir -p /opt/local/var/db/postgresql90/defaultdb $ sudo chown postgres:postgres /opt/local/var/db/postgresql90/defaultdb $ sudo su postgres -c '/opt/local/lib/postgresql90/bin/initdb -D /opt/local/var/db/postgresql90/defaultdb'
あらためてpgのインストール
$ gem install pg -- --with-pg-config=/opt/local/lib/postgresql90/bin/pg_config Building native extensions. This could take a while... Successfully installed pg-0.11.0 1 gem installed Installing ri documentation for pg-0.11.0... Installing RDoc documentation for pg-0.11.0...
以下、rails3アプリのルートディレクトリで操作。
Gemfileに以下を追加。
gem 'pg'
バンドルのインストール。
$ bundle install ... Using pg (0.11.0) ... Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
database.ymlはこんな感じで。
test: adapter: postgresql database: june_test username: rails password: rails host: 127.0.0.1 encoding: utf8
この段階でtest/unitを実行すると
PGError: FATAL: role "rails" does not exist
ここで、ロールを追加するか、アクセス制限を緩和するか、方針を考える。