HerokuにCloud9からRails5.0.0.1をデプロイする時に行った方法です。
ワークスペース作成
Railsのインストール・アプリの作成
gem install rails --no-ri --no-rdoc
rails new myapp --database=postgresql
cd myapp
bundle install
Getting Started with Rails 5.x on Heroku
Hello World
rails generate controller welcome
app/views/welcome/index.html.erb
<h2>Hello World</h2>
<p>
The time is now: <%= Time.now %>
</p>
config/routes.rb
root 'welcome#index'
この時点ではPostgreSQLの設定をしていないので rails s -p $PORT -b $IP
をやってもエラーになります。
Cloud9でPostgreSQLを使えるようにする
PostgreSQL起動
sudo service postgresql start
ユーザー作成+α
sudo sudo -u postgres psql
postgres=# CREATE USER username SUPERUSER PASSWORD 'password';
postgres=# UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1';
postgres=# DROP DATABASE template1;
postgres=# CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UNICODE';
postgres=# UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1';
postgres=# \c template1
postgres=# VACUUM FREEZE;
postgres=# \q
Cloud9の設定にユーザー名とパスワードを保存
echo "export USERNAME=username" >> ~/.profile
echo "export PASSWORD=password" >> ~/.profile
source ~/.profile
dababase.ymlを編集
default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: <%= ENV['USERNAME'] %>
password: <%= ENV['PASSWORD'] %>
host: <%= ENV['IP'] %>
development:
<<: *default
database: myapp_development
production:
<<: *default
database: myapp_production
username: myapp
password: <%= ENV['MYAPP_DATABASE_PASSWORD'] %>
Cloud9で動作確認
DB作成
rails db:create
rails db:migrate
起動
rails s -p $PORT -b $IP
Herokuにデプロイ
ログイン
heroku login
コミット
git init
git add .
git commit -m "init"
デプロイ
heroku create
git push heroku master
以上となります。
これでうまくいかない場合や不明点などありましたらお知らせ下さい。