This commit is contained in:
2025-09-12 12:54:16 +02:00
parent 1d271c5b82
commit 60553e288e
7 changed files with 78 additions and 16 deletions

View File

@@ -67,8 +67,55 @@ RUN checkinstall -D --install=no --fstrans=no --backup=no --pakdir=/tmp \
--pkgname=pgrouting --pkgversion=${pgrouting_release} \
--nodoc
# =============================================================================
# pg_cron
#
FROM build-pgdev AS pgcron
# Télécharger
ARG pg_cron_release=1.6.7
ADD "https://github.com/citusdata/pg_cron/archive/refs/tags/v${pg_cron_release}.tar.gz" \
/tmp/pg_cron.tar.gz
# Extraire
RUN tar -xvf /tmp/pg_cron.tar.gz -C /tmp && \
rm -rf /tmp/pg_cron.tar.gz
# Build from source
WORKDIR /tmp/pg_cron-${pg_cron_release}
RUN make -j$(nproc)
# Create debian package
RUN checkinstall -D --install=no --fstrans=no --backup=no --pakdir=/tmp --nodoc
# =============================================================================
# postgresql-anonymizer
#
FROM build-pgdev AS pganon
ARG anon_release=2.3.0
ADD "https://gitlab.com/dalibo/postgresql_anonymizer/-/archive/${anon_release}/postgresql_anonymizer-${anon_release}.tar.gz" \
/tmp/anon.tar.gz
RUN mkdir /tmp/anon && \
tar -xvf /tmp/anon.tar.gz -C /tmp && \
rm -rf /tmp/anon.tar.gz
# edit make to french data
WORKDIR /tmp/postgresql_anonymizer-1.3.2
RUN make
#-j$(nproc)
# Create debian package
RUN checkinstall -D --install=no --fstrans=no --backup=no --pakdir=/tmp \
--nodoc
# =============================================================================
# pgVector
#
FROM build-pgdev AS pgvector
ARG pgvector_release=0.6.2
@@ -112,6 +159,8 @@ COPY --from=pgtap /pgtap-dist/ /
COPY --from=pgrouting /tmp/*.deb /tmp
COPY --from=pgvector /tmp/*.deb /tmp
COPY --from=pganon /tmp/*.deb /tmp
COPY --from=pgcron /tmp/*.deb /tmp
RUN set -eux; \
apt-get install \

View File

@@ -1,7 +1,7 @@
### Construire l'image
```shell
docker build -t iut/pgsql:2025-09 .
docker build -t iut/pgsql:2025-10 .
```
## Données
@@ -15,7 +15,7 @@ Le nom des tables est au singulier et en minuscule
table |colonnes
--- |---
adherent | id, nom, prenom, genre, naissance, codepostal
famille | code, famille, code_parent
famille | code, famille, code_parent, arborescence (ltree), gauche, droite
article | code, article, famille_code, factpoids, prix
ticket | id, date_ticket, adherent_id, mode_rglt
ligne | id, ticket_id, article_code, prix_unitaire, quantite

View File

@@ -7,3 +7,4 @@
- ~~Ajouter la table adherent~~
- ~~Trier les ticket par date~~
- ~~Trier les ticket par id~~
- Parrainage avec reflexion

View File

@@ -1,6 +1,6 @@
services:
database:
image: iut/pgsql:2025-09
image: iut/pgsql:2025-10
environment:
POSTGRES_INITDB_ARGS: "--locale-provider=icu --icu-locale=fr-FR"
POSTGRES_DB: ${COMPOSE_PROJECT_NAME}

View File

@@ -1,7 +1,7 @@
code,famille,code_parent,arborescence
01,* Primeur,,Jardin.Primeur
02,** Légumes,01,Jardin.Primeur.Legumes
02RACINE,**** Racines & Tubercules,02,Jardin.Primeur.Legumes.Racine
02RACINE,*** Racines & Tubercules,02,Jardin.Primeur.Legumes.Racine
02BETT,Betterave,02RACINE,Jardin.Primeur.Legumes.Racine.Betterave
02CARO,Carotte,02RACINE,Jardin.Primeur.Legumes.Racine.Carotte
02PANA,Panais,02RACINE,Jardin.Primeur.Legumes.Racine.Panais
@@ -10,11 +10,11 @@ code,famille,code_parent,arborescence
02PATATE,Patate douce,02RACINE,Jardin.Primeur.Legumes.Racine.PatateDouce
02POMM,Pomme de terre,02RACINE,Jardin.Primeur.Legumes.Racine.PommeDeTerre
02RADI,Radis,02RACINE,Jardin.Primeur.Legumes.Racine.Radis
02CUCURB,**** Cucurbitacées,02,Jardin.Primeur.Legumes.Cucurbitacees
02CUCURB,*** Cucurbitacées,02,Jardin.Primeur.Legumes.Cucurbitacees
02COUR,Courgette,02CUCURB,Jardin.Primeur.Legumes.Cucurbitacees.Courgette
02POTIR,Potiron,02CUCURB,Jardin.Primeur.Legumes.Cucurbitacees.Potiron
02CONC,Concombre,02CUCURB,Jardin.Primeur.Legumes.Cucurbitacees.Concombre
02LEGUM,**** Légumineuses,02,Jardin.Primeur.Legumes.Legumineuses
02LEGUM,*** Légumineuses,02,Jardin.Primeur.Legumes.Legumineuses
02POIS,Pois,02LEGUM,Jardin.Primeur.Legumes.Legumineuses.Pois
02HARI,Haricot,02LEGUM,Jardin.Primeur.Legumes.Legumineuses.Haricot
02COMPOS,*** Produits composés,02,Jardin.Primeur.ProduitsComposes
@@ -25,7 +25,7 @@ code,famille,code_parent,arborescence
02AROM,Aromates,02AROMCOND,Jardin.Primeur.Assaisonnements.Aromates
02CONDIM,Condiments,02AROMCOND,Jardin.Primeur.Assaisonnements.Condiments
02EPIC,Epices,02AROMCOND,Jardin.Primeur.Assaisonnements.Epices
02FEUILLE,**** Feuilles et tiges,02,Jardin.Primeur.Legumes.Feuilles
02FEUILLE,*** Feuilles et tiges,02,Jardin.Primeur.Legumes.Feuilles
02BETTE,Bette,02FEUILLE,Jardin.Primeur.Legumes.Feuilles.Bette
02EPIN,Epinard,02FEUILLE,Jardin.Primeur.Legumes.Feuilles.Epinard
02SALA,Salade,02FEUILLE,Jardin.Primeur.Legumes.Feuilles.Salade
@@ -33,7 +33,7 @@ code,famille,code_parent,arborescence
02FENO,Fenouil,02FEUILLE,Jardin.Primeur.Legumes.Feuilles.Fenouil
02ASP,Asperge,02FEUILLE,Jardin.Primeur.Legumes.Feuilles.Asperge
02POIR,Poireau,02FEUILLE,Jardin.Primeur.Legumes.Feuilles.Poireau
02SOLAN,**** Solanacées,02,Jardin.Primeur.Legumes.Solanacees
02SOLAN,*** Solanacées,02,Jardin.Primeur.Legumes.Solanacees
02AUBE,Aubergine,02SOLAN,Jardin.Primeur.Legumes.Solanacees.Aubergine
02POIV,Poivron,02SOLAN,Jardin.Primeur.Legumes.Solanacees.Poivron
02TOMA,Tomates,02SOLAN,Jardin.Primeur.Legumes.Solanacees.Tomates
@@ -53,7 +53,7 @@ code,famille,code_parent,arborescence
03CUCURB,*** Cucurbitacées,03,Jardin.Primeur.Fruits.Cucurbitacees
03MELON,Melon,03CUCURB,Jardin.Primeur.Fruits.Cucurbitacees.Melon
03PASTEQUE,Pastèque,03CUCURB,Jardin.Primeur.Fruits.Cucurbitacees.Pasteque
03EXOTIQ,Fruits exotiques,,Jardin.Primeur.Fruits.Exotiques
03EXOTIQ,** Fruits exotiques,,Jardin.Primeur.Fruits.Exotiques
03ANANAS,Ananas,03EXOTIQ,Jardin.Primeur.Fruits.Exotiques.Ananas
03AVOCAT,Avocat,03EXOTIQ,Jardin.Primeur.Fruits.Exotiques.Avocat
03CHERI,Chérimoya,03EXOTIQ,Jardin.Primeur.Fruits.Exotiques.Cherimoya
@@ -78,8 +78,9 @@ code,famille,code_parent,arborescence
04TISANE,Tisane,04BOISSONS,Jardin.Epicerie.Boisson.Tisane
04THE,Thé,04BOISSONS,Jardin.Epicerie.Boisson.The
04CEREALE,Céréale,04,Jardin.Epicerie.Cereale
04LENT,Lentille,04,Jardin.Epicerie.Lentille
04HAR,Haricot,04,Jardin.Epicerie.Haricot
04LGSEC,Légumes secs,04,Jardin.Epicerie.Sec
04LENT,Lentille,04LGSEC,Jardin.Epicerie.Sec.Lentille
04HAR,Haricot,04LGSEC,Jardin.Epicerie.Sec.Haricot
04CONFISER,Confiserie,04,Jardin.Epicerie.Confiserie
04EP,Condiments,04,Jardin.Epicerie.Condiments
04FA,Farine,04,Jardin.Epicerie.Farine
@@ -132,7 +133,7 @@ code,famille,code_parent,arborescence
12,** Producteurs,,Jardin.Producteurs
12ARTISMON,Artisans du Monde,12,Jardin.Producteurs.ArtisansDuMonde
12ECOLONIE,Ecolonie,12,Jardin.Producteurs.Ecolonie
12RELIONRO,Miel Relion -Roussel,12,Jardin.Producteurs.Relion
12RELIONRO,Miel Relion-Roussel,12,Jardin.Producteurs.Relion
12VACCEUX,Gaec du Vacceux,12,Jardin.Producteurs.Vacceux
15TRANSLEG,Epicerie,12,Jardin.Producteurs.Epicerie
DIVERS,LIVRE,12,Jardin.Livre
1 code famille code_parent arborescence
2 01 * Primeur Jardin.Primeur
3 02 ** Légumes 01 Jardin.Primeur.Legumes
4 02RACINE **** Racines & Tubercules *** Racines & Tubercules 02 Jardin.Primeur.Legumes.Racine
5 02BETT Betterave 02RACINE Jardin.Primeur.Legumes.Racine.Betterave
6 02CARO Carotte 02RACINE Jardin.Primeur.Legumes.Racine.Carotte
7 02PANA Panais 02RACINE Jardin.Primeur.Legumes.Racine.Panais
10 02PATATE Patate douce 02RACINE Jardin.Primeur.Legumes.Racine.PatateDouce
11 02POMM Pomme de terre 02RACINE Jardin.Primeur.Legumes.Racine.PommeDeTerre
12 02RADI Radis 02RACINE Jardin.Primeur.Legumes.Racine.Radis
13 02CUCURB **** Cucurbitacées *** Cucurbitacées 02 Jardin.Primeur.Legumes.Cucurbitacees
14 02COUR Courgette 02CUCURB Jardin.Primeur.Legumes.Cucurbitacees.Courgette
15 02POTIR Potiron 02CUCURB Jardin.Primeur.Legumes.Cucurbitacees.Potiron
16 02CONC Concombre 02CUCURB Jardin.Primeur.Legumes.Cucurbitacees.Concombre
17 02LEGUM **** Légumineuses *** Légumineuses 02 Jardin.Primeur.Legumes.Legumineuses
18 02POIS Pois 02LEGUM Jardin.Primeur.Legumes.Legumineuses.Pois
19 02HARI Haricot 02LEGUM Jardin.Primeur.Legumes.Legumineuses.Haricot
20 02COMPOS *** Produits composés 02 Jardin.Primeur.ProduitsComposes
25 02AROM Aromates 02AROMCOND Jardin.Primeur.Assaisonnements.Aromates
26 02CONDIM Condiments 02AROMCOND Jardin.Primeur.Assaisonnements.Condiments
27 02EPIC Epices 02AROMCOND Jardin.Primeur.Assaisonnements.Epices
28 02FEUILLE **** Feuilles et tiges *** Feuilles et tiges 02 Jardin.Primeur.Legumes.Feuilles
29 02BETTE Bette 02FEUILLE Jardin.Primeur.Legumes.Feuilles.Bette
30 02EPIN Epinard 02FEUILLE Jardin.Primeur.Legumes.Feuilles.Epinard
31 02SALA Salade 02FEUILLE Jardin.Primeur.Legumes.Feuilles.Salade
33 02FENO Fenouil 02FEUILLE Jardin.Primeur.Legumes.Feuilles.Fenouil
34 02ASP Asperge 02FEUILLE Jardin.Primeur.Legumes.Feuilles.Asperge
35 02POIR Poireau 02FEUILLE Jardin.Primeur.Legumes.Feuilles.Poireau
36 02SOLAN **** Solanacées *** Solanacées 02 Jardin.Primeur.Legumes.Solanacees
37 02AUBE Aubergine 02SOLAN Jardin.Primeur.Legumes.Solanacees.Aubergine
38 02POIV Poivron 02SOLAN Jardin.Primeur.Legumes.Solanacees.Poivron
39 02TOMA Tomates 02SOLAN Jardin.Primeur.Legumes.Solanacees.Tomates
53 03CUCURB *** Cucurbitacées 03 Jardin.Primeur.Fruits.Cucurbitacees
54 03MELON Melon 03CUCURB Jardin.Primeur.Fruits.Cucurbitacees.Melon
55 03PASTEQUE Pastèque 03CUCURB Jardin.Primeur.Fruits.Cucurbitacees.Pasteque
56 03EXOTIQ Fruits exotiques ** Fruits exotiques Jardin.Primeur.Fruits.Exotiques
57 03ANANAS Ananas 03EXOTIQ Jardin.Primeur.Fruits.Exotiques.Ananas
58 03AVOCAT Avocat 03EXOTIQ Jardin.Primeur.Fruits.Exotiques.Avocat
59 03CHERI Chérimoya 03EXOTIQ Jardin.Primeur.Fruits.Exotiques.Cherimoya
78 04TISANE Tisane 04BOISSONS Jardin.Epicerie.Boisson.Tisane
79 04THE Thé 04BOISSONS Jardin.Epicerie.Boisson.The
80 04CEREALE Céréale 04 Jardin.Epicerie.Cereale
81 04LENT 04LGSEC Lentille Légumes secs 04 Jardin.Epicerie.Lentille Jardin.Epicerie.Sec
82 04HAR 04LENT Haricot Lentille 04 04LGSEC Jardin.Epicerie.Haricot Jardin.Epicerie.Sec.Lentille
83 04HAR Haricot 04LGSEC Jardin.Epicerie.Sec.Haricot
84 04CONFISER Confiserie 04 Jardin.Epicerie.Confiserie
85 04EP Condiments 04 Jardin.Epicerie.Condiments
86 04FA Farine 04 Jardin.Epicerie.Farine
133 12 ** Producteurs Jardin.Producteurs
134 12ARTISMON Artisans du Monde 12 Jardin.Producteurs.ArtisansDuMonde
135 12ECOLONIE Ecolonie 12 Jardin.Producteurs.Ecolonie
136 12RELIONRO Miel Relion -Roussel Miel Relion-Roussel 12 Jardin.Producteurs.Relion
137 12VACCEUX Gaec du Vacceux 12 Jardin.Producteurs.Vacceux
138 15TRANSLEG Epicerie 12 Jardin.Producteurs.Epicerie
139 DIVERS LIVRE 12 Jardin.Livre

View File

@@ -4,6 +4,7 @@ create extension if not exists postgis;
create extension if not exists pgrouting;
create extension if not exists vector;
create extension if not exists pgcrypto;
create extension if not exists pganon;
create table adherent (
id int primary key,
@@ -45,3 +46,13 @@ create table ligne (
prix_unitaire decimal,
quantite decimal
);
create table fournisseur (
id int primary key,
fournisseur text not null
);
create table region
id int primary key,
region text not null
);

View File

@@ -1,5 +1,5 @@
ALTER TABLE famille
ADD lft int, rgt int;
ADD gauche int, droite int;
-- fonction auxiliaire récursive : reçoit le compteur 'n', retourne le compteur mis à jour
CREATE OR REPLACE FUNCTION set_bounds(p_code INT, n INT)
@@ -8,7 +8,7 @@ DECLARE
child RECORD;
BEGIN
-- left
UPDATE famille SET lft = n WHERE code = p_code;
UPDATE famille SET gauche = n WHERE code = p_code;
n := n + 1;
-- parcours des enfants
@@ -19,7 +19,7 @@ BEGIN
END LOOP;
-- right
UPDATE famille SET rgt = n WHERE code = p_code;
UPDATE famille SET droite = n WHERE code = p_code;
n := n + 1;
RETURN n;
@@ -34,7 +34,7 @@ DECLARE
n INT := 1;
BEGIN
-- remise à zéro (optionnel)
UPDATE famille SET lft = NULL, rgt = NULL;
UPDATE famille SET gauche = NULL, droite = NULL;
-- pour chaque racine
FOR root IN