久しぶりにherokuにrailsをpushしようとしたら色々変わっていたので、メモ。
Heroku CLIはインストールされている前提。
最新じゃないといろいろ面倒なので、とりあえずアップデートしときます。
$ brew update
$ brew upgrade heroku
$ heroku --version
前はログインするときはidとパスワードを入力してましたけど、今はブラウザ側でログインする方法でもログインできた。
$ heroku login
heroku: Press any key to open up the browser to login or q to exit:
$ heroku create
config/environments/production.rb
を編集
# config/environments/production.rb
# Do not fallback to assets pipeline if a precompiled asset is missed.
省略
config.assets.compile = true <=falseをtrueにする
ES6の部分はコンパイルできないのでUglifier.new(harmony: true)
に変更 する。変更せずにコンパイルしようとするとUglifier::Error: Unexpected token: punc ()). To use ES6 syntax, harmony mode must be enabled with Uglifier.new(:harmony => true)
って怒られる。
# config/environments/production.rb
省略
## Compress JavaScripts and CSS.
config.assets.js_compressor = Uglifier.new(harmony: true)
ここまで終わったらコンパイルします。アセットプリコンパイルは、assetsを作業したら必ずherokuに送る前にやる。
$ rails assets:precompile RAILS_ENV=production
$ git add -A
$ git commit -m "first heroku push"
$ git push heroku master
herokuは自動時にデータベースを作成してくれるので、rails db:create
は不要。
$ heroku run rails db:migrate RAILS_ENV=production
ここまでできたらherokuにアクセス
$ heroku open