在OpenShift中部署ROR应用

作者: Nishizhen 分类: 云技术 发布时间: 2012-01-19 16:45 ė 64条评论

首先要注册OpenShift的账户,注册后使用Express Client创建域名

创建type为rack-1.1的应用
1.rhc-create-app -a railsapp -t rack-1.1 -l username
2.cd railsapp
创建Rails框架代码
1.rails new app
2.cd app
3.bundle install
4.rails generate controller home index
5.rm public/index.html
6.更改文件config/routes.rb中的router
root :to => “home#index”
7.rails generate scaffold Post name:string title:string content:text

把rails应用复制到openshift的应用的根目录覆盖其中的config.ru等

添加数据库支持

把文件.openshift/action_hooks/deploy中的下列行取消注释:

pushd ${OPENSHIFT_REPO_DIR} > /dev/null
bundle exec rake db:migrate RAILS_ENV=”production”
popd > /dev/null

有两种数据库供选择一种是SQLite另一种是MySQL
SQLite:

更改文件config/database.yml中Production中的值:
database: <%=ENV['OPENSHIFT_DATA_DIR']%>production.sqlite3

MySQL:

你需要使用rhc-ctl-app工具在你的应用中启用Mysql:

rhc-ctl-app -a APP -e add-mysql-5.1

更改文件config/database.yml中production db为:

production:
adapter: mysql
encoding: utf8
database: <%=ENV['OPENSHIFT_APP_NAME']%>
pool: 5
host: <%=ENV['OPENSHIFT_DB_HOST']%>
port: <%=ENV['OPENSHIFT_DB_PORT']%>
username: <%=ENV['OPENSHIFT_DB_USERNAME']%>
password: <%=ENV['OPENSHIFT_DB_PASSWORD']%>
socket: <%=ENV['OPENSHIFT_DB_SOCKET']%>

记得更改Gemfile文件,添加:

gem ‘mysql’

重新运行下bundle install去更新Gemfile.lock

部署:
1.git add .
2.git commit -a -m “Initial setup”
3.git push
你会看到你应用中的Gemfile和Gemfile.lock文件中gems都会被自动下载。

本文出自 逆时针's Place,转载时请注明出处及相应链接。

本文永久链接: http://www.nishizhen.cn/%e5%9c%a8openshift%e4%b8%ad%e9%83%a8%e7%bd%b2ror%e5%ba%94%e7%94%a8/

4条评论

  1. Pingback: Redhat OpenShift 云计算平台试用小记 – 尘埃落定

  2. Pingback: Redhat OpenShift 云计算平台试用小记

  3. Pingback: Redhat OpenShift 云计算平台试用小记 - 幸福一家 - 我们的窝窝!

  4. Pingback: Redhat OpenShift 云计算平台试用 | Shan 的 Blog

发表评论

电子邮件地址不会被公开。 必填项已用*标注

验证码 * Time limit is exhausted. Please reload CAPTCHA.

Ɣ回顶部