Ruby on RailsからPostgreSQLを使う

Ruby on RailsからPostgreSQLを使う

RailsもPosgtreSQLも入ったので連携させてみる。

やったこと

DBにPostgreSQLを指定してアプリ作成
  • アプリ作成
$ rails new test_apl -d postgresql
  • Gem関連でエラー発生。Gemのインストールはrootで実施する必要があるので。
$ cd test_apl
$ sudo bundle install
$ cd ../
  • 再度アプリ作成。成功。
$ rails new test_apl -d postgresql
DB設定ファイル編集
$ vi config/database.yml
development:
  adapter: postgresql
  host: localhost
  encoding: utf8
  database: xxxdb_dev
  pool: 5
  username: testuser
  password: testuser
test:
  adapter: postgresql
  host: localhost
  encoding: utf8
  database: xxxdb_test
  pool: 5
  username: testuser
  password: testuser
設定ファイルに従いDB作成
  • DB作成
$ rake db:create RAILS_ENV=development
PG::Error: ERROR:  permission denied to create database
  • database.ymlで設定したユーザにDB作成権限が無かったためエラー発生。ユーザ作り直し。
$ sudo su - postgres
$ createuser -U postgres -P testuser
新しいロールのパスワード:
もう一度入力してください:
新しいロールをスーパーユーザとしますか?  (y/n)n
新しいロールにデータベース作成権限を与えますか? (y/n)y
新しいロールにロールを作成する権限を与えますか? (y/n)n
パスワード:
  • 作成ユーザの権限確認
$ psql -d postgres -U postgres
ユーザ postgres のパスワード:
psql (8.4.13)
"help" でヘルプを表示します.
postgres=# \du
                ロール一覧
 ロール名 |        属性        | メンバー
----------+--------------------+----------
 postgres | スーパーユーザ     | {}
          : ロールを作成できる
          : DBを作成できる
 testuser | DBを作成できる     | {}
  • 改めてDB作成。成功
$ rake db:create

参考サイト

  • 特に無し