カテゴリー:
Rails
タグ:
 postgresql centos6 rails5

このエントリーをはてなブックマークに追加
更新日時:
2017年01月15日(日)
作成日時:
2017年01月15日(日)

前の記事 / 次の記事

CentOS6系はおもむろにyumでインストールしようとすると
8系のpostgresqlがインストールされるので9系を入れたい場合はちょっと面倒。

まずは公式に書いてある通りにがんばる。
Linux downloads (Red Hat family)

リポジトリをインストールした上でyum install
rootかsudoで

$ yum install http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-redhat95-9.5-2.noarch.rpm
$ yum install postgresql95-server postgresql95-contrib

初期化して

$ service postgresql-9.5 initdb

OS起動時に起動する設定

$ chkconfig postgresql-9.5 on service postgresql-9.5 start 

とりあえず起動

$ service postgresql-9.5 start

postgresというユーザーが自動的に作成されているはずなので、
root経由でpostgresユーザーになる。

ユーザーとデータベースを作成。

参考

ユーザーはRailsを起動するユーザーと同じにしておくと色々面倒くさくないと思う。
データベース名はRailsのアプリケーション名と同じにしておくと色々面倒くさくないと思う。
パスワードは使わない方向で。

$ createuser appuser
$ createdb appname -E UTF8 -U appuser

postgresqlに作成したユーザーがいなければCentOS側でも新たに作成。

$ sudo adduser appuser
$ sudo passwd appuser

ここまでできたらpostgresqlとCentOS側の設定は終了。
次にRails5を設定する。

pgがないと動かないのでインストールする。

$ vi Gemile

gem 'pg'

$ bundle install

この時、なんか足りないからインストールできないんですけどって言われる。

参考:pgのインストール中にエラーが出た

postgresql-develが入ってないのが原因なんだけど入れてるから入ってる訳だけど、
パスが通ってないのでパスを通すかとりあえずyumで8系のpostgres-develを入れると8系のpostgres-develにパスが通ってビルドできるようになる。

そしてRailsの設定ファイルに使用するDBを設定する。
development, test, productionの環境は必要に応じて。
appuerとappnameはpostgresqlに設定した値と合わせる。
poolとtimeoutはデフォルト値を引用。

$ vi config/database.yml
development:
  adapter: postgresql
  username appuser
  database appname
  pool: 5
  timeout: 5000

$ bundle exec rake db:migrate

お疲れ様でした。