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:
Por abimaelmartell el 31 de Diciembre de 2012
Código :
la uso cuando solamente una gema sera para produccion, desarrollo o testing...
Saludos
Por dxvtuts el 31 de Diciembre de 2012
Por abimaelmartell el 31 de Diciembre de 2012
Si quieres ver mas te dejo mi repositorio
https://github.com/abimaelmartell/blog/
Saludos!
Por dxvtuts el 31 de Diciembre de 2012
Por abimaelmartell el 31 de Diciembre de 2012
Código :
esto se podria simplificar a dos lineas
Código :