Initialisation de la base de données

Nous avons jusqu’à présent installé toutes les briques logicielles nécessaires pour faire fonctionner l'application. Attachons nous dans ce chapitre à initialiser a minima la base de données afin que l'on puisse se connecter à Sentinelle.

Il existe dans le dossier /home/sentinelle/alizes un script se nommant initDBSentinelle.sh

Il suffit de lancer ce script afin d'initialiser notre base de données.

AttentionOui, mais c'est mieux de comprendre ! ! !

Avant de lancer ce script, je vous conseille vivement de lire en détails les éléments que je vais présenter ci-dessous. Ceci vous permettra de comprendre les éléments essentiels du fonctionnement de Sentinelle.

Vérification de l'accès à la base de données

Nous allons tout d'abord vérifier que l'accès à la base de données est correctement configuré. Puis, nous initialiserons cette base avec les tables qui décrivent le modèle de données de Sentinelle

ProcédureBase de données

  1. cd ~/alizes

    Positionnons nous dans le dossier de l'application Sentinelle

  2. source ~/.rvm/scripts/rvm

    Permet de charger les rvm

  3. export RAILS_ENV=production

    Cette commande va dire à rails d'utiliser les paramètres de connexion à la base de PRODUCTION.

  4. rake db:drop

    On supprime ici la base de données qui a été créée lors de l'installation

  5. rake db:create

    Cette commande va effectuer une connexion à la base de données et créer la base pour Sentinelle.

    rake, est un moteur de production (build program) similaire a make, mais écrit en ruby.

    Truc & astuceEn cas d'échec de la commande

    Si la commande échoue, cela signifie que vous avez un problème de connexion à votre base de données.

    Généralement le message commence par rake aborted! ,  la ligne suivante donne la raison de l'erreur, voici quelques exemples de problèmes courants

    The program 'rake' is currently not installed.

    -> Problème d'environnement ( l'ouverture d'une nouvelle console ssh, devrait permettre de charger l'environnement rails)

    Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

    -> Mysql est arrêté

    Access denied for user 'rails'@'localhost' (using password: YES)

    -> Problème de mot de passe (le mot de passe/identifiant dans config/database.yml est incorrect)

    database configuration does not specify adapter

    -> Problème d’environnement (oubli de passer en mode PRODUCTION [export RAILS_ENV=production] )

  6. rake db:migrate

    Cette commande va créer toute la structure de la base.

Truc & astuceRéinitialisation de la base de données

Si vous souhaitez repartir d'une base vierge, il vous suffira de rentrer les commandes suivantes :

export RAILS_ENV=production

rake db:drop

rake db:create

rake db:migrate