Arborescence des pages

Vous regardez une version antérieure (v. /wiki/display/SIGN/PostgreSQL) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 4) afficher la version suivante »

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 :

apt install postgresql

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

host    all all     127.0.0.1/32    password

Redémarrage de postgresql

systemctl restart postgresql.service

Création de la base :

su postgres
psql
create database esupsignature;
create USER esupsignature with password 'esup';
grant ALL ON DATABASE esupsignature to esupsignature;


L'application a été développée avec la fonction de lecture/écriture des blobs dans une transaction par streaming 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 :

apt-get install postgresql-contrib

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

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)) :

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

Vous devez démarrer l'application une fois.Ne pas oublier ensuite, pour ne pas écraser la base au redémarrage, de modifier src/main/resources/META-INF/spring/database.properties : create-> update

  • Aucune étiquette