Gestion de la base de données

Prérequis

Vous devez au préalable récupérer le framework. Dans le répertoire www de votre serveur apache :

svn checkout https://scm.adullact.net/anonscm/svn/openmairie/openmairie_exemple/trunk openExemple

Si ce n’est pas fait vous devez egalement créer les répertoires suivant : Création des répertoires dédiés au stockage des données de l’applicatif.

Création de la base de données

Création de la base de données sous PostgreSQL

Il vous est proposé de créer la base de données sous PostgreSQL :

  • Créer les tables nécessaires au framework openMairie :

    cd data/pgsql
    sudo su postgres
    dropdb openexemple && createdb openexemple && psql openexemple -f install.sql
    
  • Créer les tables nécessaires à notre exemple :

    • table courrier

      courrier        int 8       cle primaire
      dateenvoi       date
      objetcourrier   text
      lu              boolean     faux par défaut
      emetteur        int8        cle secondaire
      service         int8        cle secondaire
      
    • table emetteur

      emetteur        int 8       cle primaire
      nom             varchar 20
      prenom          varchar 20
      
    • table service

      service         int 8        cle primaire
      libelle         varchar 20
      
    • La requête correspondante en PostgreSQL est la suivante :

      -- Selection du schéma
      
      SET search_path TO openexemple;
      
      -- Création des séquences
      
      CREATE SEQUENCE emetteur_seq
      START WITH 1
      INCREMENT BY 1
      NO MINVALUE
      NO MAXVALUE
      CACHE 1;
      
      CREATE SEQUENCE service_seq
      START WITH 1
      INCREMENT BY 1
      NO MINVALUE
      NO MAXVALUE
      CACHE 1;
      
      CREATE SEQUENCE courrier_seq
      START WITH 1
      INCREMENT BY 1
      NO MINVALUE
      NO MAXVALUE
      CACHE 1;
      
      -- Création des tables
      
      CREATE TABLE emetteur (
          emetteur          int PRIMARY KEY,  -- clé primaire
          nom               varchar(20),
          prenom            varchar(20)
      );
      
      CREATE TABLE service (
          service           int PRIMARY KEY,  -- clé primaire
          libelle           varchar(20)
      );
      
      CREATE TABLE courrier (
          courrier          int PRIMARY KEY,           -- clé primaire
          dateenvoi         date,
          objetcourrier     text,
          lu                boolean DEFAULT FALSE,
          emetteur          int REFERENCES emetteur,   -- clé étrangère
          service           int REFERENCES service     -- clé étrangère
      );
      
  • Modifier le paramétrage openMairie pour faire un accès à la base créée :

    dyn/database.inc.php

    Voir le paragraphe “Paramétrage de la connexion à la base de données” pour plus de détails sur cette configuration.

  • Accéder avec votre navigateur sur openExemple :

    login : admin

    mot de passe : admin

Création de la base de données dans les fichiers de l’application

On va maintenant créer la base de données en utilisant des fichiers afin d’avoir toujours la même base à déployer.

Créer fichier init_metier.sql dans le répertoire data/pgsql et copier le code servant à créer les tables et les sequences dedans sans prendre la ligne « set search_path … ».

Copier le code suivant dans install.sql juste avant le COMMIT pour intégrer le nouveau fichier lors de l’initialisation de la base de données :

-- Instructions de base de l'applicatif
\i init_metier.sql
Déclencher la création de la base de données comme vu précedemment : ::
cd data/pgsql sudo su postgres dropdb openexemple && createdb openexemple && psql openexemple -f install.sql
  • Accéder avec votre navigateur sur openExemple :

    login : admin

    mot de passe : admin