Rails
cloud9

Cloud9にRails (postgresql + postgis) の開発環境を構築する

概要

緊急時の開発環境に使えるようにCloud9をセットアップしたので紹介。

構築した環境

ざっくりと以下の感じ
* ruby 2.3.1
* rails
* postgresql + postgis

手順

プログラムのアップデート・インストール

色々プログラムのバージョンが古かったり、入っていなかったりするのでそれらをアップデートおよびインストールする。

apt-getをアップデート

sudo apt-get update

rubyをアップデート

ruby --version で見たところ versionが2.3.0だったので、ちょっとだけアップデートした。

rvm upgrade 2.3.0 2.3.1

postgresqlとpostgisインストール

sudo apt-get install postgresql libpq-dev language-pack-ja
sudo apt-get install -y postgis postgresql-9.3-postgis-2.1
  • postgresql を起動する。
sudo service postgresql start

既存のリポジトリをクローンする

bitbucketで管理しているリポジトリをクローンする。

参考:Bitbucketのリポジトリをクローンする

git clone https://xxxxx@bitbucket.org/yyyyy/zzzzz.git

Rails関連の設定

database.ymlにあわせたpostgresqlの設定をする

  • 対象となるdatabase.ymlの記述例は以下の通り
config/database.yml
development:
  host: db
  database: database_dev
  encoding: utf8
  username: appuser
  password: apppass
  adapter: postgis
  pool: 4
  timeout: 7000

ホスト名の追加

  • ホスト名 dbでpostgresqlにアクセスできる用にする。listen_addressに db を追加する
/etc/postgresql/9.3/main/postgresql.conf
------------------------------------------------------------------------------                                                                                                                     
# CONNECTIONS AND AUTHENTICATION                                                                                                                                                                    
#------------------------------------------------------------------------------                                                                                                                     
# - Connection Settings -                                                                                                                                                                           

#listen_addresses = 'localhost,db'      # what IP address(es) to listen on;                                                                                                                         
                                        # comma-separated list of addresses;                                                                                                                        
                                        # defaults to 'localhost'; use '*' for all                                                                                                                  
                                        # (change requires restart)                                                                                                                                 
  • ホスト名がdbの時、localhostと同じIPにアクセスできるようにする。ただし、 インスタンスが作り直される時に消えてしまうので、その都度入れ直す必要あり。
127.0.0.1 localhost
127.0.0.1 db

postgresqlへデータベースの追加

  • postgresqlを起動し、ユーザーを追加する
sudo -u postgres psql
# CREATE USER appuser WITH PASSWORD 'apppass';
# ALTER ROLE appuser SUPERUSER;
# CREATE DATABASE 'database_dev' encoding 'UTF-8' TEMPLATE template0 owner appuser;
# ALTER ROLE appuser WITH CREATEDB;
Ctrl-D

postgresqlへpostgisアダプタの追加

sudo -u postgres psql -d database_dev
# CREATE EXTENSION postgis;
Ctrl-D

postgresqlへUTF-8を登録する

# CREATE COLLATION "ja_JP.utf8" (LOCALE = 'ja_JP.UTF-8');

git情報の登録

git用にのnameとemailを登録する。(参考:リポジトリごとに user.name や user.email の設定を強制する

git config user.name "username"
git config user.email "user@email.com"

railsの起動

  • ふつうにgem入れたりmigrationしたりseedを入れたりする。
gem install bundler
bundle install
rake db:migrate
rake db:seed
rails server -b $IP -p $PORT

うまくいかないとき

  • postgresqlを起動、再起動する
sudo service postgresql start

もしくは

sudo service postgresql restart

以上