程序员人生 网站导航

Rails在MacOS上搭建Heroku部署环境

栏目:框架设计时间:2017-04-06 09:07:42

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上的网站了 ;)

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐