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
参考サイト
- 特に無し