GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser PostgreSQL avec l'application Ruby On Rails

Même si la base de données par défaut SQLite3 fonctionne très bien avec Ruby on Rails , nous ne devrions pas l'utiliser dans certains cas. Par exemple, si un grand nombre d'utilisateurs accèdent simultanément à votre application Rails, SQLite n'est pas recommandé. Nous devrions essayer des bases de données plus robustes comme MySQL ou PostgreSQL, qui offrent évolutivité, concurrence, centralisation et contrôle. Nous savions déjà utiliser MySQL avec l'application Rails . Aujourd'hui, nous verrons comment utiliser PostgreSQL avec l'application Ruby on Rails dans Ubuntu Linux.

Prérequis

Je suppose que vous avez déjà installé le dernier Ruby on Rails sur votre système Linux. Sinon, consultez le guide suivant.

  • Comment installer Ruby On Rails sous Linux

1. Installer PostgreSQL

Pour installer PostgreSQL dans Debian, Ubuntu et ses dérivés, exécutez :

$ sudo apt install postgresql postgresql-contrib libpq-dev

Cette commande installera PostgreSQL avec toutes les dépendances requises. Ici, le libpq-dev est une bibliothèque PostgreSQL qui permet aux programmes clients de transmettre des requêtes au serveur backend PostgreSQL et de recevoir les résultats de ces requêtes. Cette bibliothèque est nécessaire pour se connecter à PostgreSQL lorsque vous configurez une application Rails.

Assurez-vous que le service postgresql est démarré et activé au démarrage :

$ sudo systemctl start postgresql
$ sudo systemctl enable postgresql

Pour afficher l'état actuel du service postgresql, exécutez :

$ systemctl status postgresql

1.1. Créer un nouveau rôle de base de données

Nous avons besoin d'un utilisateur de base de données dédié (rôle) pour créer et configurer des bases de données ou notre application Rails.

Pour créer un nouveau rôle de base de données dans PostgreSQL, exécutez la commande suivante depuis votre Terminal :

$ sudo -u postgres createuser -s ostechnix -P

Ici,

  • sudo -u postgres - vous permet d'exécuter la commande depuis le postgres compte.
  • createuser -s ostechnix - créer un nouveau rôle nommé ostechnix avec des privilèges de super utilisateur.
  • -P - vous invite à saisir le mot de passe du nouveau rôle.

2. Utiliser PostgreSQL avec l'application Ruby on Rails sous Linux

Pour créer une nouvelle application Rails appelée ostechnixapp et utilisez PostgreSQL comme base de données par défaut, exécutez :

$ rails new ostechnixapp -d postgresql

Cela créera une application Rails appelée ostechnixapp dans un répertoire nommé ostechnixapp et installez les dépendances gem qui sont déjà mentionnées dans Gemfile en utilisant l'bundle install .

Après avoir créé l'ostechnixapp application, basculez vers son répertoire :

$ cd ostechnixapp/

Modifiez le fichier de configuration de la base de données de l'application :

$ vi config/database.yml

Sous le default section, ajoutez le rôle de base de données PosgreSQL et son mot de passe que nous avons créé à l'étape précédente :

[...]
default: &default
   adapter: postgresql
   encoding: unicode
   # For details on connection pooling, see Rails configuration guide
   # https://guides.rubyonrails.org/configuring.html#database-pooling
   pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
   username: ostechnix
   password: Password123#@!
[...]

Remplacez le nom d'utilisateur et son mot de passe par les vôtres. Appuyez sur ESC et tapez :wq pour enregistrer et fermer le fichier.

Créez maintenant la nouvelle base de données pour votre application Rails à l'aide de la commande :

$ rake db:create

Cela créera deux bases de données avec le nom de votre application Rails. Par exemple, si le nom de l'application est ostechnixapp, alors il créera ostechnixapp_development et ostechnixapp_test .

Created database 'ostechnixapp_development'
Created database 'ostechnixapp_test'

Vous pouvez également vérifier si les bases de données sont créées avec succès à partir de PosgreSQL.

Connectez-vous à PosgreSQL :

$ sudo -u postgres psql

Dans l'invite postgresql, exécutez \l pour lister les bases de données disponibles :

postgres=# \l

Exemple de résultat :

                                       List of databases
            Name           |   Owner   | Encoding | Collate |  Ctype  |   Access privileges   
 --------------------------+-----------+----------+---------+---------+-----------------------
  ostechnixapp_development | ostechnix | UTF8     | C.UTF-8 | C.UTF-8 | 
  ostechnixapp_test        | ostechnix | UTF8     | C.UTF-8 | C.UTF-8 | 
  postgres                 | postgres  | UTF8     | C.UTF-8 | C.UTF-8 | 
  template0                | postgres  | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
                           |           |          |         |         | postgres=CTc/postgres
  template1                | postgres  | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
                           |           |          |         |         | postgres=CTc/postgres
 (5 rows)
 postgres=# 

Quittez l'invite PostgreSQL en saisissant \q .

postgres=# \q

Démarrez maintenant votre serveur Web Rails à l'aide de la commande :

$ rails server -b 0.0.0.0

Cela démarrera votre application Rails sur le port par défaut 3000 . Ici, nous avons passé l'argument -b 0.0.0.0 afin d'accéder à l'application Rails depuis n'importe quelle machine du réseau local.

Ouvrez votre navigateur Web et accédez à votre page de test Rails en accédant à l'URL :http://ip-address:3000 .

Si vous souhaitez utiliser un port différent, passez -p drapeau avec le numéro de port comme ci-dessous :

$ rails server -b 0.0.0.0 -p 8080

Désormais, l'application Rails est accessible depuis cette URL :http://ip-address:8080 .

3. Supprimer l'application Rails

Si vous avez utilisé la base de données par défaut qui est SQLite, vous pouvez supprimer l'application Rails en supprimant simplement son répertoire d'application.

$ rm -fr ostechnixapp

Si vous avez utilisé PostgreSQL, vous devez d'abord supprimer les bases de données associées de votre application à l'aide de la commande :

$ rake db:drop

Puis supprimez le répertoire de l'application :

$ rm -fr ostechnixapp

Conclusion

Vous savez maintenant comment créer une application Rails avec PostgreSQL comme base de données. Comme je l'ai déjà mentionné, si votre application est activement utilisée par un grand nombre d'utilisateurs, vous devez utiliser PostgreSQL ou MySQL. Cela peut également être utile lorsque vous souhaitez faire évoluer la base de données à l'avenir, gérer votre base de données à partir d'un système de suppression.

Lire connexe :

  • Configurer la connexion à la base de données à l'aide de la variable d'environnement dans les rails

Linux
  1. Comment j'utilise Vagrant avec libvirt

  2. Créer une application de bureau Linux avec Ruby

  3. Comment configurer un environnement pour l'application Ruby on Rails

  4. Comment installer Ruby on Rails (RoR) avec PostgreSQL sur Ubuntu 16.04

  5. Comment utiliser l'exportation avec Python sous Linux

Comment installer Ruby on Rails sur Debian 9

Comment installer Ruby on Rails sur Debian 10

Comment installer Ruby on Rails sur CentOS 7

Comment installer Ruby on Rails sur CentOS 8

Comment installer Ruby on Rails sur Ubuntu 16.04

Comment installer Ruby on Rails sur Ubuntu 20.04 avec RVM