rails heroku 部署

   Heroku是一个部署ruby on rails的玩意儿,或者说服务,因为它可以通过gem安装,到它的 网站看看,发现页面非常简洁同时也很美观,首页就有几行代码说明了像首页界面一样简单的Heroku的使用方法。用我的定义Heroku就是一个空间提供商,但是它又完全不同于以往见到的那些,随便说两条:
  • 一种基于git的命令行式的ruby on rails应用部署工具集
  • 命令行工具集相当厉害但web界面的管理方式美观有余功能不足
  • 支持多种版本的rails,目前到2.3.3
  • 关键是有免费的5M空间可以用

先说这么多,下面介绍怎样使用Heroku,环境是ubuntu 9.04 Server。

一、安装Heroku

由于Heroku使用git方式push内容,所以先装git,什么是git?就不介绍了。

<textarea style="width: 452px; height: 40px" class="brush: bash; " rows="rows" cols="cols">sudo apt-get install git-core</textarea>

然后通过gem方式安装Heroku:

<textarea style="width: 452px; height: 40px" class="brush: bash; " rows="rows" cols="cols">sudo gem install heroku</textarea>

同时为了使用可以导入导出heroku数据库,我们再装一下tabs,即使你不装,在使用到这个命令的时候也会提示你装:

<textarea style="width: 451px; height: 40px" class="brush: bash; " rows="rows" cols="cols">sudo gem install tabs</textarea>

安装完毕后,可以直接输入heroku查看帮助。下面介绍怎样使用heroku,切记使用之前先去doc里看看现在支持到那个版本的rails了。

二、使用Heroku

目标:创建一个应用并加入一个Post的scaffold

整个过程还可以参考heroku提供的快速指南。但是没有介绍ssh key的生成。

先生成ssh密钥对,安装ubuntu时已经集成了ssh服务,所以不介绍安装:

<textarea style="width: 446px; height: 40px" class="brush: bash; " rows="rows" cols="cols">ssh-keygen -t rsa</textarea>

会提示输入一些路径什么的,全部默认即可。这样会在~/.ssh/下生产密钥对。

这里先使用rails创建一个应用并加入git:

?
1
2
3
4
5
6
7
cd
rails weblog
cd weblog
script /generate scaffold Post title:string content:text
git init
git add .
git commit -m "add a new app"

应用准备好了,下面使用Heroku:

?
1
2
3
4
5
6
7
heroku create *****
输入你在Heroku注册的用户名,不要说还没有,快去注。
Password:
Uploading ssh public key ~/. ssh /id_rsa .pub
Created http: // *****.heroku.com/ | [email protected]:*****.git
Git remote heroku added

*****处如果没有值,Heroku会自动为你生成一个,这样就可以去http://*****.heroku.com/看看,是不是已经有首页了?但是里面还没有应用,下面把你刚才创建的应用添加进去,只要一行代码:

<textarea style="width: 326px; height: 24px" class="brush: bash; " rows="rows" cols="cols">git push heroku master</textarea>

这里我遇到点问题,由于企业防火墙没有开git端口,让我一直连接不上Heroku的服务器,这里需要git端口:9418. 现在看到Heroku在动了吧,稍等。。。上传完毕:

?
1
2
3
4
5
6
7
8
9
10
Counting objects: 7, done .
Compressing objects: 100% (4 /4 ), done .
Writing objects: 100% (4 /4 ), 402 bytes, done .
Total 4 (delta 3), reused 0 (delta 0)
 
-----Heroku receiving push
-----Rails app detected
        Compiled slug size is 80K
-----Launching....... done
        http: //ddr888 .heroku.com deployed to Heroku

想知道每个过程是做什么的,去查文档。然后是把你的schema中的东西同步进Heroku提供的PostgreSQL 8.3.5中。

<textarea style="width: 323px; height: 24px" class="brush: bash; collapse: true;">heroku rake db:migrate</textarea>

这个命令是不是很熟悉,但是不要再做create了,因为Heroku已经帮你做了。然后打开应用:

<textarea style="width: 323px; height: 20px" class="brush: bash; collapse: true;">heroku open</textarea>

看到熟悉的rails欢迎界面了吧,然后在URL后加上posts: http://ddr888.heroku.com/posts,怎么样看到脚手架了吧,添加两个试试,very good!

最后补充一句,在本地更新代码后使用下面的命令同步进Heroku,如果改了数据库也不要忘了迁移:

?
1
2
git commit -a
git push heroku

总结

    本文介绍了Heroku的安装和基本使用,其强大的功能有待我们一起去发现。虽然它是收费的,但是毕竟目前还是有初级应用的免费空间可以用(5M),学习ruby on rails也有地方实验,还不错。快试试吧。


你可能感兴趣的:(rails heroku 部署)