heroku是什么
heroku是一个专门用来部署rails和其它web应用的云服务平台,如果你正在学习开发基于ruby on rails的web应用,并希望能将应用部署在一个免费的服务器上运行,那么heroku无疑是一个比较好的选择,它集成了应用运行的基本环境,使得上线部署变得异常简单,下面的内容是作者在部署rails应用时的过程,仅供参考。
heroku安装
首先在本地安装 heroku cli即命令行程序,安装下载时记得勾选配置环境变量:
heroku安装指导
接着到heroku上注册一个账号,163、qq邮箱之类的好像都不能注册成功,可以试试outlook邮箱。
接着在本地执行:
heroku login -i
按照提示输入刚才注册账号及密码。
执行命令
heroku create webrails2020
在相应网站上可以看到生成项目成功:
生成成功后会自动返回一个项目可访问的地址,那么恭喜,项目现在可以远程访问了。需要注意的是heroku也是由git进行版本控制的,所以相当于一个远程库,我们可将本地的项目关联到此项目,并不断的推送更新。
部署rails项目
heroku以扩展的形式支持postgresql,所以执行下面命令使得应用可以使用postgresql数据库:
heroku addons:create heroku-postgresql:hobby-dev
如果你在本地开发使用的不是postgresql,那么就要修改本地rails项目的gemfile文件,使得在开发和heroku上的生产环境都能够正常执行:
group :development do
# 本地开发用mysql
gem 'mysql2'
end
group :production do
gem 'pg'
end
接着执行:
bundle install --without production
对config/database.yml文件进行修改
default: &default
encoding: utf8mb4
pool: 5
development:
<<: *default
adapter: mysql2 # 本地数据库是mysql的情况
database: database_development # 自定义数据库对象名
username: # 本地开发数据库用户名
password: # 本地开发数据库密码
host: localhost
test:
<<: *default
adapter: mysql2
database: database_test
production:
<<: *default
adapter: postgresql # 重要
encoding: unicode
database: database_production
接着将本地的项目推送到heroku上,不必与上面的应用名相同:
git push heroku master
可以看到heroku支持git管理,可以像对远程git仓库中的项目一样进行多人的协作开发,可以将多个用户加入对heroku上的应用的管理中,
第一次部署应用或以后对数据库有迁移时(针对rails项目)要使用命令:
heroku run rake db:migrate
应用部署到heroku平台上是直接进行运行的,如果足够幸运的话,你可以通过远程链接直接访问这个线上应用了。
执行下面的命令可以查看远程数据库的配置:
heroku config
可以对你的项目重命名,改变你的项目的访问地址
heroku rename new_app
一些问题
如果你的应用支持文件图片等上传到本地服务器,那么heroku只能保存2个小时,你会发现你的文件就会消失了,最好还是使用云服务器存储你的用户上传的图片或文件。