Heroku es un servicio que nos permite publicar nuestras aplicaciones en Internet sin necesidad de preocuparnos por configurar servidores, instalar Ruby on Rails, configurar la base de datos, etc.
Heroku tiene un plan gratuito que, aunque tiene algunas limitaciones, es más que suficiente para empezar. También existen planes pagos para aplicaciones en producción que necesiten más procesamiento y/o memoria; puedes consultar los precios en esta página.
Si aún no tienes una cuenta en Heroku, ingresa a la página principal y crea una.
## Heroku CLI
Una vez que tengas una cuenta en Heroku debes descargar el Heroku CLI, una aplicación para la línea de comandos que te permitirá interactuar con Heroku. En este enlace encontrarás las instrucciones para descargarla e instalarla.
Una vez que la hayas instalado verifica la instalación ejecutando el siguiente comando:
$ heroku --version
Deberías ver heroku/x.y.z
en el resultado.
Por último ejecuta el siguiente comando para autenticarte:
$ heroku login
Ingresa el email y contraseña que utilizaste para crear tu cuenta en Heroku.
Si creaste la aplicación sin especificar --database=postgresql
vas a tener que agregar la gema pg
a tu proyecto de Rails. Edita tu Gemfile
y cambia la siguiente línea:
gem 'sqlite'
Por esta otra:
gem 'pg'
Nota: Es recomendable también utilizar PostgreSQL en desarrollo para evitar errores que puedan surgir en producción por la diferencia en la base de datos. Sin embargo, si quieres seguir utilizando SQLite en desarrollo agrega la gema pg
al grupo production
y la gema sqlite
al grupo development
y test
:
group :development, :test do
gem 'sqlite'
end
group :production do
gem 'pg'
end
Reinstala las dependencias ejecutando:
$ bundle install
Por último haz commit ejecutando los siguientes comandos:
$ git add .
$ git commit -m 'Prepare app for Heroku deployment'
Para desplegar la aplicación primero debes crear la aplicación en Heroku ejecutando el siguiente comando:
$ heroku create
Y desplegarla con el siguiente comando:
$ git push heroku master
Este proceso toma algún tiempo, pero lo importante es que al final salga algo parecido a lo siguiente:
remote: Verifying deploy... done.
To https://git.heroku.com/un-nombre-extrano.git
* [new branch] master -> master
Corre las migraciones con el siguiente comando:
$ heroku run rails db:migrate
Y reinicia la aplicación con este comando:
$ heroku restart
Por último ejecuta el siguiente comando para visitar tu aplicación:
$ heroku open