Statut: Obsolète
Cet article est obsolète et n’est plus maintenu.
Raison
Nous proposons désormais des tutoriels à jour pour utiliser Rails avec Postgres qui sont adaptés à chaque plateforme individuelle.
Voir à la place
Cet article peut encore être utile comme référence, mais il peut ne pas fonctionner ou suivre les meilleures pratiques. Nous recommandons vivement d’utiliser un article récent écrit pour le système d’exploitation que vous utilisez.
Introduction
Postgres (ou PostgreSQL) est une base de données open source. Ruby on Rails est un framework web open source écrit en Ruby. Rails est agnostique à la base de données, ce qui signifie qu’il peut être utilisé avec une variété de bases de données différentes. Par défaut, il suppose que MySQL est utilisé, mais il est assez facile à utiliser avec Postgres à la place.
Ce guide vous guidera à travers la création d’une application Rails qui utilise une base de données Postgres. Vous pouvez suivre le guide sur votre machine locale ou un VPS.
Installation des prérequis
Installation de Rails en utilisant RVM
La manière la plus simple d’installer Rails est d’utiliser RVM, qui installe également Ruby. Pour installer RVM, vous devrez vous assurer que votre système a curl installé (la manière de faire cela dépend de votre système d’exploitation). Si vous avez déjà RVM installé, passez à la section suivante.
RVM peut installer Ruby et Rails automatiquement dans le cadre de son installation. Pour ce faire, exécutez cette commande :
\curl -L https://get.rvm.io | bash -s stable --rails
Note : vous devriez examiner le script d’installation de RVM avant de l’exécuter (ou tout autre script distant que vous transmettez à bash
).
RVM s’installera sur votre système. Vous pouvez maintenant l’utiliser pour gérer vos versions de Ruby. Cela est utile car vous pourriez avoir besoin de différentes versions de Ruby pour différents projets. RVM a également installé le gem Rails pour nous.
Installation de Rails en utilisant RubyGems
Si vous avez déjà RVM installé, vous n’avez pas besoin de le réinstaller. Au lieu de cela, vous pouvez simplement installer Rails en installant le gem :
gem install rails
Cela installera Rails et tous les autres gems dont il a besoin.
Installation de Postgres
La méthode d’installation de Postgres dépend de votre système d’exploitation. Consultez postgresql.org/download pour une liste complète. En général, il est plus facile d’utiliser un gestionnaire de paquets tel que apt-get sur Ubuntu ou Homebrew sur OS X.
Si vous installez Postgres sur une machine locale, vous voudrez peut-être également installer une interface graphique (bien que ce guide suppose une utilisation en ligne de commande). pgAdmin n’est pas l’outil le plus esthétique au monde, mais il fait le travail.
Enfin, vous voudrez installer la gemme pg pour pouvoir interagir avec Postgres depuis du code Ruby. Pour ce faire :
gem install pg
Configuration de Postgres
Créez un utilisateur Postgres pour l’application Rails que nous créerons à l’étape suivante. Pour ce faire, passez à l’utilisateur Postgres :
su - postgres
Ensuite, accédez à Postgres :
psql
Ensuite, créez un utilisateur (ou un « rôle », comme Postgres l’appelle) :
create role myapp with createdb login password 'password1';
Création de votre application Rails
Pour créer une application Rails configurée pour Postgres, exécutez cette commande :
rails new myapp --database=postgresql
Cela crée un répertoire appelé « myapp » qui abrite une application appelée « myapp » (vous pouvez lui donner le nom que vous voulez lors de l’exécution de la commande). Rails s’attend à ce que le nom de l’utilisateur de la base de données corresponde au nom de l’application, mais vous pouvez facilement le changer si nécessaire.
Nous allons maintenant configurer à quelle base de données Rails va s’adresser. Cela se fait en utilisant le fichier database.yml, situé à :
RAILS_ROOT/config/database.yml
Note : RAILS_ROOT est le répertoire racine de Rails. Dans l’exemple ci-dessus, il se trouverait à /myapp (par rapport à votre emplacement actuel).
Le fichier database.yml est utilisé par Rails pour se connecter à la base de données appropriée pour l’environnement Rails actuel. Il utilise YAML, un standard de sérialisation de données. Il y a quelques bases de données répertoriées ici pour différents environnements ; développement, test et production. Par défaut, Rails s’attend à une base de données différente pour chaque environnement. C’est pratique car, par exemple, la base de données de test est vidée et reconstruite chaque fois que vous exécutez les tests Rails. Pour chaque base de données, assurez-vous que le nom d’utilisateur et le mot de passe correspondent au nom d’utilisateur et au mot de passe que vous avez donnés à votre utilisateur Postgres.
Une fois configuré, votre database.yml devrait contenir quelque chose comme ceci :
development:
adapter: postgresql
encoding: unicode
database: myapp_development
pool: 5
username: myapp
password: password1
test:
adapter: postgresql
encoding: unicode
database: myapp_test
pool: 5
username: myapp
password: password1
Vous pouvez ensuite exécuter :
rake db:setup
Cela créera des bases de données de développement et de test, définira leurs propriétaires sur l’utilisateur spécifié, et créera des tables « schema_migrations » dans chacune d’elles. Cette table est utilisée pour enregistrer vos migrations vers des schémas et des données.
Exécution de Rails
Vous devriez maintenant être en mesure de démarrer votre application Rails :
rails server
Si vous accédez à localhost:3000, vous devriez voir une page d’accueil Rails. Cela ne fait pas grand-chose cependant. Pour interagir avec notre base de données, créons une échafaudage :
rails g scaffold Post title:string body:text
rake db:migrate
Maintenant, rendez-vous sur localhost:3000/posts. À partir de là, vous pouvez créer de nouveaux articles, modifier des articles existants et supprimer des articles. Consultez le guide de démarrage de Rails pour plus d’opérations d’introduction.
Votre application Rails communique maintenant avec une base de données Postgres !
Source:
https://www.digitalocean.com/community/tutorials/how-to-set-up-ruby-on-rails-with-postgres