Ruby on Rails - Configuration de la base de données

Avant de commencer avec ce chapitre, assurez-vous que votre serveur de base de données est opérationnel. Ruby on Rails recommande de créer trois bases de données - une base de données pour chaque environnement de développement, de test et de production. Selon la convention, leurs noms devraient être -

  • library_development
  • library_production
  • library_test

Vous devez les initialiser tous les trois et leur créer un utilisateur et un mot de passe avec tous les privilèges de lecture et d'écriture. Nous utilisons leroot ID utilisateur de notre application.

Configuration de la base de données pour MySQL

Dans MySQL, nous utilisons le rootID utilisateur de notre application. La session de console MySQL dans laquelle vous faites cela ressemble à quelque chose comme -

mysql> create database library_development;
Query OK, 1 row affected (0.01 sec)

mysql> grant all privileges on library_development.*
to 'root'@'localhost' identified by 'password';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

Vous pouvez faire la même chose pour deux autres bases de données library_production et library_test.

Configuration de database.yml

À ce stade, vous devez informer Rails du nom d'utilisateur et du mot de passe des bases de données. Vous faites cela dans le fichierdatabase.yml, disponible dans le library\configsous-répertoire de l'application Rails que vous avez créé. Ce fichier contient des sections de configuration en direct pour les bases de données MySQL. Dans chacune des sections que vous utilisez, vous devez modifier les lignes de nom d'utilisateur et de mot de passe pour refléter les autorisations sur les bases de données que vous avez créées.

Lorsque vous avez terminé, cela devrait ressembler à quelque chose comme -

development:
   adapter: mysql
   database: library_development
   username: root
   password: [password]
   host: localhost
	
test:
   adapter: mysql
   database: library_test
   username: root
   password: [password]
   host: localhost
   
production:
   adapter: mysql
   database: library_production
   username: root
   password: [password]
   host: localhost

Configuration de la base de données pour PostgreSQL

Par défaut, PostgreSQL ne fournit aucun utilisateur. Nous devons créer de nouveaux utilisateurs. Utilisez la commande suivante pour créer un utilisateur avec le nomrubyuser.

tp> sudo -u postgres createuser rubyuser -s

Si vous souhaitez créer un mot de passe pour le nouvel utilisateur, utilisez la commande suivante.

tp> sudo -u postgres psql

postgres=# \password rubyuser

Utilisez la commande suivante pour créer une base de données library_development.

postgres=# CREATE DATABASE library_development OWNER rubyuser; 

CREATE DATABASE

Utilisez la commande suivante pour créer une base de données library_production.

postgres=# CREATE DATABASE library_production OWNER rubyuser; 

CREATE DATABASE

Utilisez la commande suivante pour créer une base de données library_test.

postgres=# CREATE DATABASE library_test OWNER rubyuser; 

CREATE DATABASE

presse Ctrl+D pour terminer PosgreSQL.

Configuration de database.yml

À ce stade, vous devez indiquer à Rails le nom d'utilisateur et le mot de passe des bases de données. Vous faites cela dans le fichierdatabase.yml, disponible dans le library\configsous-répertoire de l'application Rails que vous avez créé. Ce fichier contient des sections de configuration en direct pour les bases de données PostgreSQL. Dans chacune des sections, vous devez modifier les lignes de nom d'utilisateur et de mot de passe pour refléter les autorisations sur les bases de données que vous avez créées.

Lorsque vous avez terminé, cela devrait ressembler à ceci -

default: &default
   adapter: postgresql
   encoding: unicode
  
development:
   adapter: postgresql
   encoding: unicode
   database: library_development
   username: rubyuser
   password: <Password for rubyuser>

test:
   adapter: postgresql
   encoding: unicode
   database: library_test
   username: rubyuser
   password: <Password for rubyuser>
 
production:
   adapter: postgresql
   encoding: unicode
   database: library_production
   username: rubyuser
   password: <Password for rubyuser>

Quelle est la prochaine?

Les deux chapitres suivants expliquent comment modéliser vos tables de base de données et comment gérer celles qui utilisent les migrations Rails.