heroku安装及部署rails项目教程
开发了一个带数据库的小项目,部署至heroku看看效果。
安装
macOS安装:
brew install heroku
其他系统安装参见heroku官网
检查是否安装好:
heroku version
确认 Heroku 命令行工具已经安装之后,使用 heroku 命令登录,然后添加 SSH 密钥:
heroku login
heroku keys:add
如果没有ssh key,请先生成 SSH 公钥
部署前准备
1. 将项目添加至git
进入项目目录,初始化git
git init
然后执行 git add -A 命令,把项目中的所有文件都放到仓库中:
git add -A
提交:
git commit -m "Initialize repository"
这里的提交仅仅将代码提交到了本地,一般都会提交至服务端,这里我用了 Bitbucket,这是一个专门用来托管和分享 Git 仓库的网站
提交远程仓库之前要做下面三件事:
- 如果没有账户,先注册一个 Bitbucket 账户;
- 添加公钥到账户控制中
- 创建一个仓库
建好远程仓库后,需要将本地项目与远程仓库关联:
git remote add origin git@bitbucket.org:<username>/<project>.git
提交本地项目
git push -u origin --all
2. 修改 Gemfile
本地数据库使用的是sqlite,heroku不支持sqlite,因此需要配置对生产环境进行一些设置。
Gemfile中配置
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug', platform: :mri
# sqlite数据库移动到里
gem 'sqlite3'
end
# 添加production组,内部配置postgresql的插件
group :production do
gem 'pg', '0.18.4'
end
修改完后需要运行
bundle install --without production
然后,提交这次改动:
git commit -a -m "Update Gemfile for Heroku"
部署并迁移数据
部署
git push heroku master
创建postgresql数据库
heroku addons:create heroku-postgresql:hobby-dev
查找数据库地址
heroku config -s | grep HEROKU_POSTGRESQL
将这个地址粘贴出来,修改database.yml
中的生产环境配置
production:
adapter: postgresql
encoding: unicode
database: postgres://xxxxxxx
pool: 5
timeout: 5000
运行数据迁移
# 数据迁移
heroku run rake db:migrate
# 插入测试数据
heroku run rake db:seed
打开项目页面
heroku open
至此,部署彻底完成