dimanche 13 avril 2008

Ruby on Rails et SQLite

Pour programmer une application en Ruby on Rails, nous avons le choix de la base de données que nous utiliserons.
MySQL est certes la plus efficace mais il y a toujours, pour l'aspect portable de l'application le choix de SQLite qui peut s'avérer pertinent.
Comme je développe mon premier projet entre chez moi et dans mon foyer du week-end, j'utilise à la fois MySQL et SQLite (ce dernier est fort pratique pour économiser les ressources du PC).

Je vais vous faire part de la problématique que j'ai pu rencontrer.

Sous Linux base Debian (j'utilise plutôt Ubuntu):

Aucuns soucis...

$ sudo apt-get install sqlite3 libsqlite3-dev

$ sudo gem install sqlite3-ruby

Et voilà il n'y a plus qu'à modifier la configuration du projet au niveau du database.yml comme indiquer ci-dessous

Sous Windows c'est une toute autre affaire:

En effet il vous faut télécharger le fichier sqlite3.dll sur le site officiel de SQLite (ici => http://www.sqlite.org/download.html)

Le fichier sqlite3.exe peut aussi être récupéré mais il ne permettra que l'administration de votre base de données en ligne de commande..

Le fichier précédemment télécharger devra être obligatoirement placé dans le répertoire source de ruby (en général C:/ruby/bin).
Alors comme sous linux, il faudra procéder à l'installation de la gem sqlite3-ruby... saisissez gem install sqlite3-ruby dans la fenêtre commande.

Pensez à choisir la version win32 si cela vous ait demandé


La particularité de Windows est qu'il faut ABSOLUMENT créer son projet dans un répertoire pour lequel le chemin ne contient AUCUN espaces... sinon le projet sera incapable d'ouvrir la base de données.

Et pour finir, le fichier database.yml:
Mettre ceci dans les paramètres de la base de données:

development:
adapter: sqlite3
database: db/LPG_development.db


Quelques différences entre SQLite et MySQL:
  • Pour tous les champs qui ne peuvent pas être à NULL, il est indispensable de déclarer la valeur par défaut dans la migration

  • Dans les fixtures, il est indispensable de renseigner tous les champs, même ceux created_at, updated_at et lock_version


Et voilà vous avez tous les renseignements pour programmer avec SQLite, faites-vous plaisir!!!

Sources: http://wiki.rubyonrails.org/rails/pages/HowtoUseSQLite

modifié le 13 Juin 2010