Ruby on Rails, entornos y conexión a la base de datos

(Este post es una continuación del Curso de Ruby on Rails).
<< Para ver el Post Anterior

En este Post veremos como configurar la conexión a nuestra base de datos MySQL y echaremos un vistazo a los distintos entornos que nos ofrece Rails para el desarrollo y depuración de nuestras aplicaciones.

Para configurar la conexión a la base de datos, rails pone a nuestra disposición el archivo “database.yml” ubicado en config -> database.yml. Este archivo nos permite configurar la conexión a tres bases de datos. Tres bases de datos para tres entornos: development (desarrollo), test (prueba) y production (producción).

Contenido del archivo database.yml

La configuración de este archivo es muy sencilla. Basta con indicar, en cada sección (o al menos en una de ellas, convenientemente la del entorno de desarrollo), el nombre de cada una de las bases de datos que hemos creado junto a la dirección del servidor (host) donde está ubicada y el username y password del usuario con acceso a la misma. Rails considera, por defecto, que la base de datos a la que nos vamos a conectar es MySQL.

El “database.yml” de este ejemplo ha sido generado al crear una aplicación de nombre “colegio”, de modo que Rails agrega por defecto el nombre de la aplicación al comienzo del nombre de cada una de las bases de datos. Este nombre puede ser cambiado por cualquier nombre que nosotros le hayamos dado a nuestra base de datos y no es necesario, aunque sea conveniente, disponer de tres bases de datos distintas. Por ejemplo, si lo que vamos a realizar es una aplicación con el fin de probar nuestros conocimientos, bastará con que configuremos la conexión a la base de datos de desarrollo, borrando incluso del archivo database.yml las secciones de producción y prueba.

Los Entornos
Rails formaliza la distinción informal que todo desarrollador de software hace entre el código que se ejecuta cuando se está desarrollando una aplicación y el que se ofrece al cliente o se sube a un servidor una vez la aplicación está finalizada mediante la utilización de lo que se ha dado en llamar “entornos”.

En config -> environments se encuentran los archivos de configuración de los tres entornos que, por defecto, crea Rails en cada aplicación. Pueden editarse estos entornos o crearse otros al gusto del desarrollador pero no suele ser necesario.

Árbol de Directorios - Archivos de Configuración de la base de datos y entornos

En el entorno de desarrollo (development) – como se explica en su archivo de configuración config -> environments -> development.rb -, el código de nuestra aplicación es cargado cada vez que se hace una petición al servidor. Esto baja el rendimiento de respuesta pero es perfecto para el desarrollo de la aplicación ya que no es necesario reiniciar el servidor cada vez que se hace un cambio en nuestro código. Por ello la línea config.cache_classes es igual a false.

El entorno de producción (production) (config -> environments -> production.rb) es el adecuado para correr aplicaciones finalizadas. El código no es recargado en cada petición al servidor. Otra diferencia importante es que los reportes o avisos de error en nuestro código no son mostrados en pantalla.

El entorno de prueba (test) (config -> environments -> test.rb) se utiliza exclusivamente para ejecutar las pruebas y comprobaciones en la aplicación. No se trabajará en este entorno para nada mas. Es importante recordar que los datos almecenados en la base de datos de prueba son destruidos por Rails en cada test que se realiza por lo que hay que tener especial cuidado en que la configuración de la sección prueba de nuestro archivo de configuración database.yml no apunte a las bases de desarrollo o producción

Hay varias formas de indicar a Rails qué entorno utilizar. Las dos mas sencillas:
– Configurar el archivo config/environment.rb descomentando o escribiendo la línea env[‘rails_env’] = production, que haría correr nuestra aplicación en el entorno de producción.

Contenido del archivo environment.rb

– Iniciar el servidor en el entorno deseado de este modo y desde la consola de Rails: ruby script/server -e production

Anuncios

4 Responses to Ruby on Rails, entornos y conexión a la base de datos

  1. […] Damo por hecho que hemos creado nuestra base de datos “colegio” en MySQL y tenemos configurado correctamente nuestro archivo de acceso a la base de datos “database.yml” (config -> database.yml). Para refrescar la memoria echad un vistazo a este Post. […]

  2. silver dice:

    hola q ta l mira te pido ayuda necesito hacer una migracion de SQLite de base de datos a rais en ubuntu gracias por tu ayuda

  3. falcon0919 dice:

    Hola q tal…muy buena la explicación, pero una pregunta capsiosa…yo también tengo los 2 entornos(desarrollo y producción) en funcionamiento pero lo que quiero es q al iniciar poder escoger el entorno que quiero, como es posible hacer esto??…
    De antemano Gracias

  4. tabodiaz dice:

    Como logro conectarm con una base de datos en Mysql… ademas de modificar el archivo database.yml.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: