Esup-Signature

Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

L'ensemble des données est stocké dans une base de données, images comprises, cela nous a ammené à utiliser PostgreSQL (et non MySQL) pour ses possibilités de streaming sur les blobs.

Exemple sous debian :

...

Bloc de code
apt install postgresql

dans pg_hba /etc/postgresql/<XX>/main/pghba.conf ajout de : ajout de

...

Bloc de code
host    all all     127.0.0.1/32

...

    password

Redémarrage de postgresql

Bloc de code
systemctl restart postgresql.service

Création de la base :

Bloc de code
su

...

 postgres

...


psql

...


create database esupsignature;

...


create USER esupsignature with

...

 password 'esup';

...


grant ALL ON DATABASE esupsignature to esupsignature;

Cette application a été dévelopée en utilisant Spring ROO et donc ses technologies associées.


Comme annoncé ci-dessus, lL'application a cependant été développée avec PostgreSQL : la fonction de lecture/écriture des blobs dans une transaction par streaming ; idexation postgresql (usage de tsvector/tsquery)de PostgreSQL.

Pour une bonne gestion des blob de cette application, il faut ajouter dans PostgreSQL un trigger sur la base de données sur la table big_file. La fonction lo_manage est nécessaire ici.

Sous debian :

Bloc de code
apt-

...

get install

...

 postgresql-contrib

Puis la création de l'extension lo se fait via un super-user:avec postgresql 9 :

Bloc de code
apt-

...

get install

...

 postgresql-contrib

...


psql

...


\c esupsignature

...


CREATE EXTENSION lo;

Et enfin ajout du trigger (afin que les tables soient préalablement créées, notamment la table big_file sur lequel on souhaite mettre le trigger lo_manage, il faudra avant celà démarrer une fois esup-signature (avec le paramètre 'create' dans le database.properties)) :

Bloc de code
CREATE TRIGGER t_big_file BEFORE UPDATE OR DELETE ON big_file FOR EACH ROW EXECUTE PROCEDURE lo_manage(binary_file);


CF https://www.postgresql.org/docs/9.4/static/lo.html

...