Comment utiliser PostgreSQL avec votre application Ruby on Rails sur CentOS 7

introduction

Ruby on Rails utilise sqlite3 comme base de données par défaut, ce qui fonctionne très bien dans de nombreux cas, mais peut ne pas être suffisant pour votre application. Si votre application nécessite l’évolutivité, la centralisation et le contrôle (ou toute autre fonctionnalité) d’une base de données SQL client / serveur, telle que https://www.digitalocean.com/community/tutorials/sqlite-vs-mysql-vs-postgresql -a-comparaison-de-systèmes de gestion de base de données relationnelle [PostgreSQL ou MySQL], vous devrez effectuer quelques étapes supplémentaires pour le rendre opérationnel.

Ce tutoriel vous montrera comment configurer un environnement de développement Ruby on Rails qui permettra à vos applications d’utiliser une base de données PostgreSQL, sur un serveur CentOS 7 ou RHEL. Dans un premier temps, nous verrons comment installer et configurer PostgreSQL. Ensuite, nous vous montrerons comment créer une application rails qui utilise PostgreSQL en tant que serveur de base de données.

Conditions préalables

Ce tutoriel nécessite un environnement de développement Ruby on Rails fonctionnel. Si vous ne l’avez pas déjà, vous pouvez suivre le tutoriel dans ce lien: https://www.digitalocean.com/community/tutorials/how-to-install-ruby-on-rails-with-rbenv-on-centos -7 [Comment installer Ruby on Rails avec rbenv sur CentOS 7].

Vous devrez également avoir accès à un compte superutilisateur ou + sudo + afin de pouvoir installer le logiciel de base de données PostgreSQL.

Ce guide suppose également que SELinux est désactivé.

Une fois que vous êtes prêt, installons PostgreSQL.

Installer PostgreSQL

Si PostgreSQL n’est pas déjà installé, faisons-le maintenant.

Si ce n’est déjà fait, ajoutez le référentiel EPEL à yum avec cette commande:

sudo yum install epel-release

Installez le serveur PostgreSQL et ses bibliothèques de développement:

sudo yum install postgresql-server postgresql-contrib postgresql-devel

PostgreSQL est installé mais nous devons encore faire une configuration de base.

Créez un nouveau cluster de base de données PostgreSQL:

sudo postgresql-setup initdb

Par défaut, PostgreSQL n’autorise pas l’authentification par mot de passe. Nous allons changer cela en modifiant sa configuration d’authentification basée sur l’hôte.

Ouvrez la configuration HBA avec votre éditeur de texte préféré. Nous allons utiliser vi:

sudo vi /var/lib/pgsql/data/pg_hba.conf

Trouvez les lignes qui ressemblent à ceci, près du bas du fichier:

pg_hba.conf extrait (original)

host    all             all             127.0.0.1/32            ident
host    all             all             ::1/128                 ident

Puis remplacez «ident» par «md5», ils se présentent ainsi:

pg_hba.conf extrait (mis à jour)

host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5

Sauvegarder et quitter. PostgreSQL est maintenant configuré pour autoriser l’authentification par mot de passe.

Maintenant, démarrez et activez PostgreSQL:

sudo systemctl start postgresql
sudo systemctl enable postgresql

PostgreSQL est maintenant installé, mais vous devez créer un nouvel utilisateur de base de données, que votre application Rails utilisera.

Créer un utilisateur de base de données

Tout d’abord, passez à l’utilisateur système + postgres +:

sudo su - postgres

Créez un utilisateur superutilisateur PostgreSQL avec cette commande (remplacez le mot en surbrillance par votre propre nom d’utilisateur):

createuser -s

Pour définir un mot de passe pour l’utilisateur de la base de données, entrez la console PostgreSQL avec cette commande:

psql

La console PostgreSQL est indiquée par l’invite + postgres = # +. À l’invite de PostgreSQL, entrez cette commande pour définir le mot de passe de l’utilisateur de la base de données créé:

\password

Entrez le mot de passe souhaité à l’invite et confirmez-le.

Maintenant, vous pouvez quitter la console PostgreSQL en entrant cette commande:

\q

Maintenant que votre utilisateur PostgreSQL est configuré, revenez à votre utilisateur normal:

exit

Créons maintenant une application Rails.

Créer une nouvelle application Rails

Créez une nouvelle application Rails dans votre répertoire personnel. Utilisez l’option + -d postgresql + pour définir PostgreSQL comme base de données et veillez à remplacer le mot en surbrillance par le nom de votre application:

cd ~
rails new  -d postgresql

Puis déplacez-vous dans le répertoire de l’application:

cd

L’étape suivante consiste à configurer la connexion à la base de données de l’application.

Configurer la connexion à la base de données

L’utilisateur PostgreSQL que vous avez créé sera utilisé pour créer les bases de données de test et de développement de votre application. Nous devons configurer les paramètres de base de données appropriés pour votre application.

Ouvrez le fichier de configuration de la base de données de votre application dans votre éditeur de texte préféré. Nous allons utiliser vi:

vi config/database.yml

Dans la section + default +, trouvez la ligne qui dit «pool: 5» et ajoutez les lignes suivantes. Cela devrait ressembler à quelque chose comme ça (remplacez les parties surlignées par votre utilisateur et votre mot de passe PostgreSQL):

extrait de config / database.yml

 host: localhost
 username:
 password:

Sauvegarder et quitter.

Créer des bases de données d’application

Créez vos bases de données d’applications + développement et` + test` en utilisant cette commande rake:

rake db:create

Cela créera deux bases de données sur votre serveur PostgreSQL. Par exemple, si le nom de votre application est "nomapplication", des bases de données appelées "appname_development" et "appname_test" seront créées.

Si vous rencontrez une erreur à ce stade, revenez à la sous-section précédente (Configurer la connexion à la base de données) pour vous assurer que les attributs + host +, + username + et + password + dans + database.yml + sont corrects. Après vous être assuré que les informations de la base de données sont correctes, essayez de créer à nouveau les bases de données d’application.

Test de configuration

Le moyen le plus simple de vérifier que votre application est capable d’utiliser la base de données PostgreSQL est d’essayer de l’exécuter.

Par exemple, pour exécuter l’environnement de développement (par défaut), utilisez cette commande:

rails server

Cela démarrera votre application Rails sur votre hôte local sur le port 3000.

Si votre application Rails se trouve sur un serveur distant et que vous souhaitez y accéder via un navigateur Web, un moyen simple consiste à la lier à l’adresse IP publique de votre serveur. Tout d’abord, cherchez l’adresse IP publique de votre serveur, puis utilisez-la avec la commande + rails server + comme ceci:

rails server --binding=

Vous devriez maintenant pouvoir accéder à votre application Rails dans un navigateur Web via l’adresse IP publique du serveur sur le port 3000:

Visiter dans un navigateur web:

http://:3000

Si vous voyez la page «Bienvenue à bord» de Ruby on Rails, votre application est correctement configurée et connectée à la base de données PostgreSQL.

Conclusion

Vous êtes maintenant prêt à commencer le développement de votre application Ruby on Rails, avec PostgreSQL comme base de données, sur CentOS 7!

Bonne chance!

Related