Como fazer deploy Rails app no Heroku

Subcategoria: Ruby on Rails

Deploy no Heroku: passo a passo

Abaixo está listado e explicado os comandos para realizar um deploy de um Rails App no Heroku. Para realizar o deploy já deve possuir uma aplicação em Rails e usar o postgres como banco de dados (esse é o deploy mais "nutella", o heroku também aceita o mysql, porém com mais obstáculos.)

Primeiros comandos

O primeiro passo é realizar o login no heroku:

$ heroku login
Enter your Heroku credentials:
Email: your_email@email.com
Password: ***************
Logged in as your_email@email.com

Ajustes no projeto

Antes de fazer o deploy você deve fazer alguns ajustes no seu projeto. Relaxa, são bem simples. Verifique se no seu arquivo cofing/enviroments/production.rb possui o seguinte trecho de código (geralmente fica no final do arquivo)

# config/environments/production.rb
config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
if ENV["RAILS_LOG_TO_STDOUT"].present?
  logger           = ActiveSupport::Logger.new(STDOUT)
  logger.formatter = config.log_formatter
  config.logger = ActiveSupport::TaggedLogging.new(logger)
end

Em seguida adicione a versão Ruby do seu projeto no Gemfile.

# ruby version for deploy
ruby "2.3.1"

Comandos para o deploy

Com sua master atualizada no git, vamos começar o processo de deploy, primeiro crie o projeto no heroku, dê um nome para ele:

$ heroku create nomeDoSeuProjeto

Em seguida vamos fazer o deploy em si (pode demorar um pouco, cerca de 5 a 15 mim dependendo do projeto e da sua internet).

$ git push heroku master

Muito bem, seu projeto já está no ar. "Opa! Mas qual o endereço dele?" Calma! Ainda vamos fazer a migração do banco de dados:

$ heroku run rake db:migrate

Caso você tenha um arquivo seeds.rb populado basta trocar o migrate por seed:

$ heroku run rake db:seed

Agora sim, você pode abrir seu projeto com o comando:

$ heroku open

Manutenção

Após o deploy é muito normal perceber vários bugs e mais comum ainda, começar a usar o seu software e perceber que determinada atividade poderia ser muito mais simples, então temos que refatorar nosso código e atualizar o deploy. Bom com o Heroku é bem simples fazer isso, atualize sua branch master e em seguida basta usar o mesmo comando de deploy:

$ git push heroku master

Dica: resetar banco de dados

Caso você precise resetar seu banco de dados use o comando:

$ heroku pg:reset DATABASE
$ heroku run rake db:migrate
$ heroku run rake db:seed
$ heroku restart

Para saber mais sobre o deploy do Heroku com Rails 5.+ veja a documentação oficial deles aqui.

Comentários