介紹
Heroku 是雲端主機供應商,它有提供免費方案,提供 DB 及 mailgun etc.,如果只是一個小型不複雜的專案使用它還蠻合適的
如何 Deploy 到 Heroku
heroku login
2) 到你的 Repository 目錄裡
3) Push 你的 code 到 heroku
- Production 不能使用 sqlite3,詳細說明在這
- Production 要用 PostgreSQL,最好是 Dev 及 Production 都用 PostgreSQL
- Production 一定要有
gem 'pg'
否則即使 deploy 成功,頁面也會噴錯
- Gemfile.lock 必須要有,不要在 .gitignore 加上它
這裡可以先做個小修改,讓 App 能順利 deploy 再說,Postgres 安裝再另外解決,Gemfile :
gem 'sqlite3', group: [:development, :test]
gem 'pg', group: :production
如果 PostgreSQL 還沒安裝,在 bundle install
先略過它
bundle install --without production
Deploy 指令 :
heroku create
git push heroku master
當 app 被 deploy 時,heroku 會自動執行 bundle install
4) 觀看你的 rails app 頁面
heroku open
會自動打開瀏覽器
5) 完成
如果打算使用 Postgres 當作開發環境的 DB,安裝及設定請參考此篇的"連接 PostgreSQL 設定"
如何連到 Heroku Postgret
修改 database.yml,只需要簡單的設定這樣就好,其他的就交給 heroku
production:
<<: *default
adapter: postgresql
encoding: unicode
migrate
heroku run rake db:migrate
成功後可以連到 heroku 的 rails console 看看 Table 是否建立成功
其他設定
Rails Log:heroku 的 log 只有標準輸出,所以要將 rails log 導到標準輸出,否則會很難 Debug
gem 'rails_12factor', group: :production
其他指令
觀看 log
heroku logs --tail
進入 console
heroku run rails console
查看 Postgrets 資訊
heroku pg
restart
heroku restart
刪除 Postgres PID
heroku pg:kill PROCESSID
重置 DB,使用這個 command 要確定你要這麼做
heroku pg:reset DATABASE_URL
或
heroku pg:reset DATABASE