heroku只是用postgresql,而不能兼容sqlite數據庫.所以很重要的1步就是在部署實際產品的時候將數據庫類型修改成postgresql,否則你將沒法push到heroku上去.
heroku官方的說明在這里:
https://devcenter.heroku.com/articles/sqlite3
你可以在rails創建的時候就默許使用postgresql數據庫:
rails new you_web -d postgresql
否者你就在Gemfile中自己手動按實際需要修改數據庫類型,但別忘記了config目錄里的database.yml內容也要做對應修改,下面是1個例子:
development:
adapter: postgresql
encoding: unicode
database: demo_app_development
pool: 5
username:
password:
test:
adapter: postgresql
encoding: unicode
database: demo_app_test
pool: 5
username:
password:
production:
adapter: postgresql
encoding: unicode
database: demo_app_production
pool: 5
username:
password:
接下來在實際履行bundle install的時候會出點意外,由于你還沒有在本地安裝postgresql,在MacOS下你可使用brew來安裝:
brew install postgresql
這是由于pg gem有系統原生內容,所以需要1些頭文件和庫文件來幫助編譯.接著再安裝對應的gem:
gem install pg
bundle install
這下應當正常了,你可能還要按需求創建postgresql用戶,和開啟postgresql服務:
pg_ctl -D /usr/local/var/postgres start
//or
brew services start postgresql
具體功能你可以到postgresql官網上去查詢.
你固然已在Heroku的主頁上注冊并激活了用戶,接下來你還要在本地安裝heroku client,你可以在Heroku主頁中下載安裝,不過貌似基本龜速,所以你還得用brew來安裝,必要時可以斟酌翻墻哪!
brew install heroic
//blablabla...
brew info heroku
heroku: stable 5.6.11-3b6a56e
Everything you need to get started with Heroku
https://cli.heroku.com
/usr/local/Cellar/heroku/5.6.11-3b6a56e (13,077 files, 81.6M) *
Built from source on 2017-01-11 at 08:46:48
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/heroku.rb
==> Requirements
Required: arch ?
好了,我們安裝好了Heroku前端,現在需要用你注冊的用戶登錄Heroku:
heroku login
然后現在進入Rails利用程序目錄在Heroku在其服務器上創建1個區域放置你的application:
heroku create
Created http://stormy-cloud-5881.herokuapp.com/ |
git@heroku.com:stormy-cloud-5881.herokuapp.com
Git remote heroku added
不出意外的話,你已在Heroku服務器上成功創建了對應的App,并且創建了1個名為heroku的git remote源.
現在你需要將你本地的web app推送到Heroku服務器中:
git push heroku master
這時候如果你性急打開http://stormy-cloud⑸881.herokuapp.com/這個heroku為你web app生成的地址,你可能要失望了,顯現在你眼前的將會是1個毛病頁面:
不過別擔心,甚么都沒出錯,只是你需要將app配置中的1個選項打開,進入config/environments目錄,打開其中的production.rb文件,將其中的config.serve_static_assets屬性改成true,保存!
我們還需要在Heroku服務器上創建數據庫文件,履行以下命令:
heroku run rake db:migrate
至此,Heroku的部署基本完成,你可以open你在Heroku上的網站了 ;)
上一篇 gps搜星流程