Herokuへアプリをpush。若干はまった
なにやらrailsでつくってみようとか考えて、Herokuへpush。
Herokuへ登録
とりあえず、Web Dyno: 1、Shared DB: 5MB、という組み合わせ。つまり無料範囲内。
railsアプリ作成
git管理にする
gemでherokuが必要
というくらいがherokuを使わない時との、差になるか。
通常gitを使ってるのなら、herokuが必要というレベル。
プロジェクトを作成
rails new app_name -JT
GemfileをUpdate
開発環境は簡単にしておきたいので、SQLite3
gem 'rails', '3.0.9' gem 'jquery-rails' group :development, :test do gem 'heroku' gem 'rails3-generators' gem 'sqlite3' gem "rspec-rails", ">= 2.0.0.beta.13" gem "factory_girl_rails" end group :production do gem 'pg' gem 'therubyracer-heroku' end gem 'sqlite3-ruby', :require => 'sqlite3'
で、bundle install
pgとかはherokuで使いたいだけのなので、productionは対象外にしておく
bundle install --without production
jquery
rails g jquery:install
factory_girlを使うための設定をconfig/application.rbに
https://github.com/indirect/rails3-generators
scaffoldとかでgenerateしたときのfixtureがfactory_girlになる
config.generators do |g| g.fixture_replacement :factory_girl end
ということでとりあえずgenerateしてみる
rails generate scaffold user name:string mailaddress:string password:string bundle exec rake db:migrate
herokuへ
とりあえずcreate
heroku create
アプリ名が勝手に入るので、renameする
heroku rename new_app_name
remote は以下のコマンドで確認
git remote show heroku
この名前がドメインの一部になる
http://[new_app_name].heroku.com/
herokuへpush
bundleも自動でしてくれる
git push heroku master
で、migrate
heroku rake db:migrate
ができない!!
こんな感じ。
sugilog% heroku rake db:migrate (in /app) rake aborted! uninitialized constant Rake::DSL /usr/ruby1.9.2/lib/ruby/1.9.1/rake.rb:2482:in `const_missing'
Rake::DSLをincludeする、っていうのもトライしてみたけどうまくいかず。
http://k10i-rails.blogspot.com/2011/06/heroku.html
結局production用のrakeを0.8.7にすることでおちつかせる。(Gemfile)
group :production do gem 'rake', '~> 0.8.7' end
とはいえ、また新しいことを初めて見た。
何かの簡単でもいいからサービスを作ることにつなげてみよう。