Parmi tous les moteurs de base de données disponibles, PostgreSQL est l'un des plus populaires. C'est un système de base de données open-source bien connu pour sa fiabilité, ses fonctionnalités robustes et ses performances. Parce que PostgreSQL est un choix populaire, il est pris en charge par presque tous les frameworks web majeurs. Tout comme ses concurrents MySQL et SQLite, PostgreSQL a également ses points forts et ses points faibles.
Ruby on Rails est un framework web populaire écrit en Ruby. C'est un framework indépendant de la base de données, ce qui signifie qu'il peut fonctionner avec une grande variété de bases de données. Par défaut, Rails suppose SQL pour les fonctionnalités de base de données. Cependant, il prend également en charge l'intégration de PostgreSQL.
Ce tutoriel va vous guider à travers le processus de configuration de PostgreSQL pour votre application Ruby on Rails.
Ruby on Rails et PostgreSQL
PostgreSQL et Ruby on Rails sont tous deux disponibles sur n'importe quelle distribution UNIX/Linux. Ils devraient être disponibles à partir des serveurs de paquets par défaut.
Une méthode alternative consiste à utiliser RVM (Ruby Version Manager). C'est un outil dédié à la gestion des installations de Ruby on Rails. L'avantage de cette approche est que RVM va créer une installation locale de Ruby on Rails. Il peut également gérer plusieurs versions de Ruby et basculer de manière transparente entre elles. Voici un tutoriel qui détaille les étapes de l'installation de Ruby on Rails avec RVM sur Ubuntu.
Quant à PostgreSQL, jetez un œil à ce guide rapide sur l'installation et la configuration de PostgreSQL sur Ubuntu.
-
Installation de RVM
Le processus d'installation de RVM est assez simple, grâce au script d'installation proposé par RVM. Le script est conçu pour détecter automatiquement le système Linux, puis télécharger et installer tous les paquets nécessaires. Nous avons besoin des clés GPG de RVM pour vérifier les paquets. Cela garantit que les paquets reçus ne sont pas falsifiés. Tout d'abord, ajoutez les clés GPG de RVM :
|
1 |
gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB |

Ensuite, exécutez le script d'installation de RVM :
|
1 |
curl -sSL https://get.rvm.io | bash -s stable --rails |

Enfin, vérifiez l'installation :
|
1 |
type rvm | head -n 1 |
-
Installation de Rails
Nous pouvons maintenant utiliser RVM pour installer des composants supplémentaires. Installez le framework Rails à l'aide de RVM :
|
1 |
gem install rails |
-
Installation de PostgreSQL
L'étape suivante nécessite que PostgreSQL soit préinstallé sur le système. Par défaut, le moyen le plus simple d'installer PostgreSQL est d'utiliser le gestionnaire de paquets par défaut. Il est disponible pour toutes les principales distributions Linux. Consultez la page de téléchargement de PostgreSQL pour toutes les méthodes d'installation disponibles. Sur Ubuntu, les commandes suivantes vont configurer le dépôt PostgreSQL et l'installer immédiatement :
|
1 |
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' |

|
1 |
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - |

|
1 |
sudo apt update && sudo apt install postgresql -y |

Pour activer la prise en charge de PostgreSQL, nous devons installer la pg gem. Elle permet l'interfaçage avec PostgreSQL à partir du code Ruby :
|
1 |
gem install pg |
-
Configuration de PostgreSQL
Après l'installation, nous allons configurer les outils que nous devrons utiliser pour nos projets. Tout d'abord, basculez vers l'utilisateur PostgreSQL :
|
1 |
su - postgres |
Accédez au shell PostgreSQL :
|
1 |
psql |

Dans le contexte de PostgreSQL, nous allons maintenant créer un nouveau rôle (classiquement connu sous le nom d'utilisateur). PostgreSQL a son propre format de rôles et de permissions. N'oubliez pas d'utiliser un nom d'utilisateur approprié et un mot de passe fort :
|
1 |
create role <username> with createdb login password 'password123'; |
Création d'une application Rails
Dites à Rails de créer une nouvelle application Rails configurée pour utiliser PostgreSQL pour la base de données :
|
1 |
rails new <app_name> --database=postgresql |

Cela créera un nouveau répertoire avec le nom d'utilisateur de l'application. Rails s'attend généralement à ce que le nom d'utilisateur de la base de données et le nom de l'application soient identiques. L'étape suivante consiste à configurer la base de données de Rails. Le fichier de configuration se trouve à l'emplacement suivant :
|
1 |
RAILS_ROOT/config/database.yml |
Le fichier database.yml contient les données décrivant la base de données appropriée pour l'environnement Rails actuel. Comme le suggère le nom du fichier, il utilise YAML. YAML est un standard de sérialisation de données lisible par l'homme pour tous les langages de programmation.
Par défaut, Rails s'attend à différentes bases de données pour différents environnements, par exemple, development, test, et production. C'est utile dans diverses situations, par exemple, Rails videra et reconstruira la base de données de test à chaque fois qu'un test Rails est exécuté.
Voici un exemple de database.yml qui contient les bases de données de development et de test :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
development: adapter: postgresql encoding: unicode database: dummyapp_development pool: 5 username: dummyapp password: password123 test: adapter: postgresql encoding: unicode database: myapp_test pool: 5 username: dummyapp password: password123 |

Il est maintenant temps d'appliquer les modifications. La commande suivante préparera les bases de données nécessaires décrites dans database.yml. Chaque base de données aura ses propres utilisateurs et ses tables schema_migrations . Cette table est nécessaire pour la migration des données et du schéma :
|
1 |
rake db:setup |
Cette étape échouera si le fichier de configuration de PostgreSQL pg_hba.conf contient des configurations incorrectes. Le fichier se trouve à l'emplacement suivant :
|
1 |
sudo cat /etc/postgresql/13/main/pg_hba.conf |
La ligne suivante est la cible. Au lieu de peer, la méthode d'authentification devrait être md5:
|
1 |
local all all peer |
Modifiez la ligne :
|
1 |
local all all md5 |

Pour que les modifications prennent effet, vous devez redémarrer le service PostgreSQL :
|
1 |
sudo systemctl restart postgresql |
Ensuite, réexécutez la configuration de la base de données :
|
1 |
rake db:setup |
Exécution de Rails
L'exécution du serveur Rails nécessite le composant supplémentaire suivant. Notez que pour cela, vous devez avoir Node.js installé (avec yarn):
|
1 |
rails webpacker:install |

L'application Rails devrait maintenant être prête à être lancée. Démarrez le serveur Rails :
|
1 |
rails server |

Le serveur devrait être accessible à partir de l'URL suivante. Il affichera la page d'accueil de Rails :
|
1 |
http://localhost:3000 |
Pour rendre la page d'accueil plus intéressante, créez un scaffold :
|
1 |
rails g scaffold Post title:string body:text |

|
1 |
rake db:migrate |
Enfin, démarrez le serveur et accédez à nouveau à l'URL. Nous pouvons maintenant gérer les articles (création, modification et suppression d'articles).
Dernières réflexions
Il s'agit d'une configuration de base de Ruby on Rails avec PostgreSQL. Il existe un guide de démarrage officiel qui vous aidera à utiliser davantage Rails. L'exemple d'application que nous avons créé utilise PostgreSQL. De cette façon, vous pouvez créer n'importe quelle application qui utilise PostgreSQL pour ses fonctionnalités.
Bon développement !


Commentaires
Aucun commentaire pour l'instant. Soyez le premier.