« Desarrollo con Ruby on Rails en Mac OSX (I): El entorno | Inicio | Desarrollo con Ruby on Rails en Mac OSX (III): MySQL y Rails »

Desarrollo con Ruby on Rails en Mac OSX (II): MySQL

La instalación de MySQL debería haber sido un paso más de la preparación del entorno, sin mayor importancia en teoría, pero al final ha sido la única parte verdaderamente dolorosa del proceso. En realidad, no ha sido la instalación en sí, sino la puesta en marcha de la base de datos y su integración con el RoR.

Continuamos con la instalación del entorno de desarrollo en el punto en el que nos quedamos en el post anterior.

El primer paso será descargar el instalador de MySQL, y ejecutarlo.

InstaladorMySQL.jpg

Si se quisiera que la base de datos se arrancara automáticamente al arrancar el sistema, habría que ejecutar también el instalador de MySQL Startup Item, que se incluye en el paquete.

Como indica la documentación, para que la instalación se pueda realizar, es necesario que exista en el sistema un usuario que se llame mysql, usuario que parece ser ya existe a partir de la versión 10.4.2 de Mac OSX, por lo que en mi caso, no ha sido necesario crearlo.

Una vez instalada la base de datos, habrá que arrancarla:

ArrancaMySQL.jpg

Si se quisiera parar:

ParaMySQL.jpg

A partir de este punto supongo que todo lo que voy a contar hay que tomarlo con precaución. Me explico. Las herramientas propias de MySQL para administrar la base de datos, como MySQL Administrator no han funcionado nada bien. Tampoco CocoaMySQL. Utilizando el administrador he podido crear usuarios de la base de datos, pero no tablas, y utilizando CocoaMySQL sólo he podido conectarme a la base de datos con el usuario anónimo. Doy por hecho que los problemas vienen por algún error en el proceso que voy a describir. Si alguien lo ve claro, por favor, que deje un comentario explicando cómo se debería hacer correctamente.

Bien, retomamos el proceso tras la instalación y el arranque de la base de datos. El primer paso va a ser crear el usuario root de MySQL:

Creando_root.jpg

Tras varios intentos, he conseguido arrancar MySQLAdministrator y conectar a la base de datos como root. Momento que voy a aprovechar para crear un usuario para los proyectos RoR (el usuario será ruby, y el password rails, impresionante despliegue de originalidad):

MySQL AdministratorScreenSnapz001.jpg

A continuación, creo el esquema para mi proyecto, que he llamado wishlist. Y creo la tabla para los datos, tabla que he llamado regalos. No he sido capaz de crear la tabla utilizando ninguna de las herramientas para administrar MySQL, por lo que después de muchos intentos, he terminado por ir a la solución rápida pero segura: logarme "a mano" en mysql desde el terminal (como el usuario rails), y crear la tabla haciendo un CREATE TABLE.

Para que la aplicación RoR pueda acceder sin problemas a los datos de la tabla, ésta debe tener una clave primaria (ojo, es importante hacerla AUTO_INCREMENT). La estructura de la tabla será:

descripTabla.jpg

Es importante fijarse en el nombre de la tabla: regalos. En el próximo post veremos el porqué de la importancia de ese nombre. Pero antes de eso, tendremos que configurar Rails para que pueda conectar con la base de datos MySQL. Y eso sí que ha sido un grano en el culo...