利用Heroku将你的程序部署到网络上
作者: Terence Lee, @hone02
下载Heroku
参照 quickstart guide 的三个步骤,注册,安装toolbelt,并登录。
教练: 谈谈部署到Heroku相对于传统主机托管服务的优越性。
准备好你自己的程序
更新我们的数据库
首先,由于Heroku使用PostgreSQL而不是SQLite,我们需要修改Gemfile才能使数据库在Heroku上运行。请修改以下代码:
gem 'sqlite3'
将它改为:
group :development do
gem 'sqlite3'
end
group :production do
gem 'pg'
end
运行 bundle install --without production
来加载程序所依赖的库。
教练: 请谈谈RDBMS,并举几个具体的例子。
版本控制系统(Version Control Systems)
我们需要把代码加入版本控制系统中去。您可以在控制台中运行:
git init
git add .
git commit -m "initial commit"
教练: 现在该是时候谈谈版本控制系统和git了。
部署你的程序
创建Heroku App
我们需要创建一个Heroku App,在控制台中键入 heroku create --stack cedar
,得到如下输出:
Creating evening-sky-7498... done, stack is cedar
http://evening-sky-7498.herokuapp.com/ | git@heroku.com:evening-sky-7498.git
Git remote heroku added
在这个例子中 “evening-sky-7498” 是你的Heroku App的名字
Push您的代码
接下来我们需要把代码push到Heroku上,键入 git push heroku master
. 您将看到以下输出:
Counting objects: 134, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (115/115), done.
Writing objects: 100% (134/134), 35.29 KiB, done.
Total 134 (delta 26), reused 0 (delta 0)
-----> Heroku receiving push
-----> Ruby/Rails app detected
-----> Installing dependencies using Bundler version 1.1.2
Running: bundle install --without development:test --path vendor/bundle --binstubs bin/ --deployment
Fetching gem metadata from https://rubygems.org/.......
...
-----> Launching... done, v4
http://evening-sky-7498.herokuapp.com deployed to Heroku
当您看到“Launching…”这一行文本的时候,我们就知道程序已经被push完毕了。
迁移数据库
接下来我们需要迁移(migrate)数据库,就像在工作室中练习过的一样: heroku run rake db:migrate
指令执行完毕后,您就可以用上面生成的URL访问您的程序了,在本例中,URL是: http://evening-sky-7498.herokuapp.com/. 也可以在控制台中键入 heroku open
,这会直接用您默认的浏览器打开以上URL。