Comment configurer Ruby on Rails avec Postgres

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