...
Installation
Exemple sous debian :
...
apt install postgresql
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
apt install postgresql |
Configuration
Dans /etc/postgresql/<XX>/main/dans pg_hba.conf : conf 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;
# Chgt du owner requis à partir de postgresql 15 -> permission création des tables
ALTER DATABASE esupsignature OWNER TO esupsignature; |
Ajustements
L'application a été développée avec la fonction de
Cette application a été dévelopée en utilisant Spring ROO et donc ses technologies associées.
Comme annoncé ci-dessus, l'application a cependant été développée avec PostgreSQL : lecture/écriture des blobs dans une transaction par streaming ; idexation postgresql (usage de tsvector/tsquery).de PostgreSQL. CF https://www.postgresql.org/docs/11/static/lo.html
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 :
...
apt-get install postgresql-contribpsql\c esupsignatureCREATE 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 | ||||
|---|---|---|---|---|
| ||||
su postgres
psql
\c esupsignature
CREATE EXTENSION lo;
|
Pour vérifier que l'extension est bien installée (toujours dans psql)
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
esupsignature=# \dx |
Retourne :
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
Liste des extensions installées
Nom | Version | Schéma | Description
---------+---------+------------+------------------------------
lo | 1.1 | public | Large Object maintenance
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
(2 lignes) |
| Astuce |
|---|
Après cette étape, il faut passer directement à la phase Configuration. La suite se passera après le premier démarrage de l'application |
...
Enfin, seulement après avoir démarré une première fois esup-signature, ajout du trigger à l'aide du script suivant :
| 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
...