Posted at

Railsで簡単なアプリをscaffoldで作ってHerokuにデプロイするまで

More than 5 years have passed since last update.


local上にアプリを作成


$ rails new app_name


本番用のdatabaseをpostgreSQL、開発、テスト用のdatabaseをsqliteに設定する。Gemfile内の

gem 'sqlite3'

gem 'sqlite3', :group => [:development, :test]

group :production do
gem 'pg'
end

に変更する。

そして、gemの更新


$ bundle install --path vendor/bundle


heroku上ではvendor/bundleでgemを管理できないことがわかった。なので以下でgemを更新するべき。


$ bundle install


作成したアプリをgitの管理下においてコミットまでしておく


$ cd app_name

$ git init

$ git add

$ git commit -m "initial commit"



heroku用の鍵を作成する


$ ssh-keygen -C 'e-mail Address' -t rsa


鍵をherokuに登録するのも忘れずに(忘れるとpermission deniedとなりherokuにpush出来ない)


$ heroku keys:add



heroku上へのアプリ作成

heroku上にアプリ名を指定してアプリを作成する。app_nameに何も指定しないとランダムな名前が付けられる。(git管理下においた場所で以下のコマンドを打つことで'heroku'にリモートリポジトリが自動的に登録される)


$ heroku create app_name



herokuにソースコードをアップロード

gitのpushを使ってソースコードをアップロードしてみる。


$ git push heroku master


herokuへのpushが成功すると http://appname.herokuapp.com/  へpublic/index.htmlが表示される。


scaffoldで簡単なアプリの作成

Railsのscaffold機能でアプリ(通院記録管理アプリ)を作成してみる。


$ rails g scaffold complog commute_date:date hosp_loc:integer


終わったらdbの作成


$ rake db:create


次にdatabase.ymlからデータベースの更新


$ rake db:migrate


ローカル環境で動くか確認


$ rails s

$ open localhost:3000/モデル名s


動作を確認できたらgitでコミットしてherokuにpush

heroku上にdatabaseを作成、更新


$ heroku run rake db:create

$ heroku run rake db:migrate


これが終わったらherokuにもらったURLにアクセスして動作を確認

heroku app管理: https://dashboard.heroku.com/apps