Comunidad de diseño web y desarrollo en internet online

Manejar gemas en producción y desarrollo en Rails

Una de las cosas que más me molestaba de estar subiendo cambios a Heroku, era modificar la gema de la base de datos. Puesto que no tengo instalado en mi computadora Postgress, tenía que usar SQLite, y bueno, Heroku no da soporte para otro gestor de bases de datos que Postgress.

Dado el problema anterior, mi solución era modificar el Gemfile cada vez que subía mi aplicación a Heroku, esto era bastante molesto de hecho. Para no hacerlo muy largo, configurar el Gemfile de manera adecuada es la solución a este problema, sé que para los ninjas de Rails esto es obvio, pero hay otros quienes inician a los que pienso puede ayudarles este tutorial sobre Manejar gemas en producción y desarrollo en Rails.

Tu Gemfile debe lucir así en la línea 8 por defecto, esta línea indica que instalará la gema de sqlite cada vez que ejecutes el bundle de tu aplicación.

Código :

 gem 'sqlite3'


Cada que subía mi aplicación a Heroku cambiaba esa línea por lo siguiente, que instala la gema de PostgressSQL.

Código :

 gem 'pg'


La solución correcta es la siguiente:

Código :

group :development, :test do
   gem 'sqlite3'   
end
group :production do
   gem 'pg'   
end


Y decidí hacer un mini-tutorial porque ese ejemplo te puede servir para cada ocasión en la que quieras que una gema se instale cuando tu entorno sea el de desarrollo o el de pruebas, pero quieras un comportamiento diferente en producción. Como sabrás, cuando una app se monta en Heroku, la aplicación se corre en producción, la configuración que te muestro le indica a Rails que solo debe instalar la gema 'pg' cuando este´en producción y la gema 'sqlite3' cuando está en desarrollo. Bastante sencillo.

Y si tu intención es la de aprender a subir aplicaciones a Heroku y aún no sabes cómo, te dejo un tutorial en vídeo:

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate