Logo lms Le Mâle Saint Le côté obscur du mâle.

Ruby on rails, connecter sa base MySQL à son projet

Ruby on rails 550x343
Allez, astuce du jour bonjour! Tout d’abord, je préfère le dire, je suis encore loin d’être un expert en Ruby On Rails mais il n’est pas forcément facile de se former sur cette technologie sur le Web donc je vous fais part de mon expérience (et mes astuces). La première chose que j’ai voulu faire apres avoir créé mon projet Ruby on Rails c’était de le raccorder à une base MYSQL. Bon, j’ai trouvé quelques tutos qui en parlaient mais il m’a fallu faire quelques manip (et recherches) pour que tout soit fonctionnel. Donc, je vais vous résumer tout ça (en espérant ne rien n’oublier)

Allez, commençons ! Pour créer un projet vous tapez normalement cette commande :

  rails new nom_projet
Et bien pour avoir directement mysql d’intégré dans votre projet, il suffit de rajouter :
 -d mysql
à votre commande ce qui donnera :
 rails new nom_projet -d mysql
Le « -d mysql » signifie que vous lui imposez votre système de gestion de base de données (SGBD), ici mysql.

Ensuite, si tout s’est bien passé vous devriez avoir votre projet de créé ! Donc maintenant, il faut ouvrir le fichier « /config/database.yml », et là vous devriez avoir ceci :

development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: database
  pool: 5
  username: root
  password: 
  host: localhost
Pour que votre base soit totalement rattachée, il faut donc modifier ce fichier afin d’avoir ceci :
development:
  adapter: mysql2
  encoding: utf8
  reconnect: false 
  database: votre_database 
  pool: 5 
  username: root 
  password: votre_password 
  host: localhost 
  socket: adresse de votre socket
(N’oubliez pas de mettre votre base de données, votre nom d’utilisateur et mot de passe.) J’ai donc rajouté une ligne qui concerne le socket afin de rattacher mon SGBD à RoR. (Pour avoir l’info , vous devriez la trouver sur la page d’accueil de votre phpmyadmin.)

Pour ce qui est du socket en ligne, je ne peux pas vous aider pour l’instant car je n’ai pas encore mis de projet sur la toile (mais dès que c’est fait, promis je mets l’astuce).

D’ailleurs faites attention de bien mettre un espace entre l’intitulé et la valeur (un petit exemple sera plus parlant) :

    Database : votre_database (Perfect)
    Database :votre_database (Game over)
Sinon vous risqueriez d’avoir une erreur lors de la migration.

Bref, si vous avez des questions, n’hésitez pas !

P.S : Si vous avez oublié de spécifier votre SGBD à la génération de votre projet, pas de soucis, ouvrez le fichier Gemfile (à la racine de votre projet) et enlevez les lignes faisant référence à

 gem 'sqlite3-ruby', :require =>; 'sqlite3'
et remplacez-les par
 gem mysql2
Ensuite, ouvrez le fichier « /config/database.yml », mettez les bonnes valeurs comme vues précédemment.

Pour suivre le Mâle saint plus facilement, retrouvez-nous sur Facebook :)


Vous avez aimé ? Partagez cet article:



Les réactions

  • Emilien Malbranche Le 25 Jan 2012

    Salut,

    J'ai suivi ton tuto, cependant j'ai une erreur :

    An error occured while installing mysql2 (0.3.11), and Bundler cannot continue.
    Make sure that `gem install mysql2 -v '0.3.11'` succeeds before bundling.

    J'ai executé la commande : gem install mysql2 -v '0.3.11' qui se déroule normalement mais aprés avoir retenté d'installer une application j'ai encore et toujours la même erreur... une idée ?

Découvrir d'autres articles