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} \ --pkgname=pgrouting --pkgversion=${pgrouting_release} \
--nodoc --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 # pgVector
#
FROM build-pgdev AS pgvector FROM build-pgdev AS pgvector
ARG pgvector_release=0.6.2 ARG pgvector_release=0.6.2
@@ -112,6 +159,8 @@ COPY --from=pgtap /pgtap-dist/ /
COPY --from=pgrouting /tmp/*.deb /tmp COPY --from=pgrouting /tmp/*.deb /tmp
COPY --from=pgvector /tmp/*.deb /tmp COPY --from=pgvector /tmp/*.deb /tmp
COPY --from=pganon /tmp/*.deb /tmp
COPY --from=pgcron /tmp/*.deb /tmp
RUN set -eux; \ RUN set -eux; \
apt-get install \ apt-get install \

View File

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

View File

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

View File

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

View File

@@ -1,7 +1,7 @@
code,famille,code_parent,arborescence code,famille,code_parent,arborescence
01,* Primeur,,Jardin.Primeur 01,* Primeur,,Jardin.Primeur
02,** Légumes,01,Jardin.Primeur.Legumes 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 02BETT,Betterave,02RACINE,Jardin.Primeur.Legumes.Racine.Betterave
02CARO,Carotte,02RACINE,Jardin.Primeur.Legumes.Racine.Carotte 02CARO,Carotte,02RACINE,Jardin.Primeur.Legumes.Racine.Carotte
02PANA,Panais,02RACINE,Jardin.Primeur.Legumes.Racine.Panais 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 02PATATE,Patate douce,02RACINE,Jardin.Primeur.Legumes.Racine.PatateDouce
02POMM,Pomme de terre,02RACINE,Jardin.Primeur.Legumes.Racine.PommeDeTerre 02POMM,Pomme de terre,02RACINE,Jardin.Primeur.Legumes.Racine.PommeDeTerre
02RADI,Radis,02RACINE,Jardin.Primeur.Legumes.Racine.Radis 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 02COUR,Courgette,02CUCURB,Jardin.Primeur.Legumes.Cucurbitacees.Courgette
02POTIR,Potiron,02CUCURB,Jardin.Primeur.Legumes.Cucurbitacees.Potiron 02POTIR,Potiron,02CUCURB,Jardin.Primeur.Legumes.Cucurbitacees.Potiron
02CONC,Concombre,02CUCURB,Jardin.Primeur.Legumes.Cucurbitacees.Concombre 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 02POIS,Pois,02LEGUM,Jardin.Primeur.Legumes.Legumineuses.Pois
02HARI,Haricot,02LEGUM,Jardin.Primeur.Legumes.Legumineuses.Haricot 02HARI,Haricot,02LEGUM,Jardin.Primeur.Legumes.Legumineuses.Haricot
02COMPOS,*** Produits composés,02,Jardin.Primeur.ProduitsComposes 02COMPOS,*** Produits composés,02,Jardin.Primeur.ProduitsComposes
@@ -25,7 +25,7 @@ code,famille,code_parent,arborescence
02AROM,Aromates,02AROMCOND,Jardin.Primeur.Assaisonnements.Aromates 02AROM,Aromates,02AROMCOND,Jardin.Primeur.Assaisonnements.Aromates
02CONDIM,Condiments,02AROMCOND,Jardin.Primeur.Assaisonnements.Condiments 02CONDIM,Condiments,02AROMCOND,Jardin.Primeur.Assaisonnements.Condiments
02EPIC,Epices,02AROMCOND,Jardin.Primeur.Assaisonnements.Epices 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 02BETTE,Bette,02FEUILLE,Jardin.Primeur.Legumes.Feuilles.Bette
02EPIN,Epinard,02FEUILLE,Jardin.Primeur.Legumes.Feuilles.Epinard 02EPIN,Epinard,02FEUILLE,Jardin.Primeur.Legumes.Feuilles.Epinard
02SALA,Salade,02FEUILLE,Jardin.Primeur.Legumes.Feuilles.Salade 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 02FENO,Fenouil,02FEUILLE,Jardin.Primeur.Legumes.Feuilles.Fenouil
02ASP,Asperge,02FEUILLE,Jardin.Primeur.Legumes.Feuilles.Asperge 02ASP,Asperge,02FEUILLE,Jardin.Primeur.Legumes.Feuilles.Asperge
02POIR,Poireau,02FEUILLE,Jardin.Primeur.Legumes.Feuilles.Poireau 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 02AUBE,Aubergine,02SOLAN,Jardin.Primeur.Legumes.Solanacees.Aubergine
02POIV,Poivron,02SOLAN,Jardin.Primeur.Legumes.Solanacees.Poivron 02POIV,Poivron,02SOLAN,Jardin.Primeur.Legumes.Solanacees.Poivron
02TOMA,Tomates,02SOLAN,Jardin.Primeur.Legumes.Solanacees.Tomates 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 03CUCURB,*** Cucurbitacées,03,Jardin.Primeur.Fruits.Cucurbitacees
03MELON,Melon,03CUCURB,Jardin.Primeur.Fruits.Cucurbitacees.Melon 03MELON,Melon,03CUCURB,Jardin.Primeur.Fruits.Cucurbitacees.Melon
03PASTEQUE,Pastèque,03CUCURB,Jardin.Primeur.Fruits.Cucurbitacees.Pasteque 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 03ANANAS,Ananas,03EXOTIQ,Jardin.Primeur.Fruits.Exotiques.Ananas
03AVOCAT,Avocat,03EXOTIQ,Jardin.Primeur.Fruits.Exotiques.Avocat 03AVOCAT,Avocat,03EXOTIQ,Jardin.Primeur.Fruits.Exotiques.Avocat
03CHERI,Chérimoya,03EXOTIQ,Jardin.Primeur.Fruits.Exotiques.Cherimoya 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 04TISANE,Tisane,04BOISSONS,Jardin.Epicerie.Boisson.Tisane
04THE,Thé,04BOISSONS,Jardin.Epicerie.Boisson.The 04THE,Thé,04BOISSONS,Jardin.Epicerie.Boisson.The
04CEREALE,Céréale,04,Jardin.Epicerie.Cereale 04CEREALE,Céréale,04,Jardin.Epicerie.Cereale
04LENT,Lentille,04,Jardin.Epicerie.Lentille 04LGSEC,Légumes secs,04,Jardin.Epicerie.Sec
04HAR,Haricot,04,Jardin.Epicerie.Haricot 04LENT,Lentille,04LGSEC,Jardin.Epicerie.Sec.Lentille
04HAR,Haricot,04LGSEC,Jardin.Epicerie.Sec.Haricot
04CONFISER,Confiserie,04,Jardin.Epicerie.Confiserie 04CONFISER,Confiserie,04,Jardin.Epicerie.Confiserie
04EP,Condiments,04,Jardin.Epicerie.Condiments 04EP,Condiments,04,Jardin.Epicerie.Condiments
04FA,Farine,04,Jardin.Epicerie.Farine 04FA,Farine,04,Jardin.Epicerie.Farine
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

View File

@@ -4,6 +4,7 @@ create extension if not exists postgis;
create extension if not exists pgrouting; create extension if not exists pgrouting;
create extension if not exists vector; create extension if not exists vector;
create extension if not exists pgcrypto; create extension if not exists pgcrypto;
create extension if not exists pganon;
create table adherent ( create table adherent (
id int primary key, id int primary key,
@@ -45,3 +46,13 @@ create table ligne (
prix_unitaire decimal, prix_unitaire decimal,
quantite 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 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 -- 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) CREATE OR REPLACE FUNCTION set_bounds(p_code INT, n INT)
@@ -8,7 +8,7 @@ DECLARE
child RECORD; child RECORD;
BEGIN BEGIN
-- left -- left
UPDATE famille SET lft = n WHERE code = p_code; UPDATE famille SET gauche = n WHERE code = p_code;
n := n + 1; n := n + 1;
-- parcours des enfants -- parcours des enfants
@@ -19,7 +19,7 @@ BEGIN
END LOOP; END LOOP;
-- right -- right
UPDATE famille SET rgt = n WHERE code = p_code; UPDATE famille SET droite = n WHERE code = p_code;
n := n + 1; n := n + 1;
RETURN n; RETURN n;
@@ -34,7 +34,7 @@ DECLARE
n INT := 1; n INT := 1;
BEGIN BEGIN
-- remise à zéro (optionnel) -- remise à zéro (optionnel)
UPDATE famille SET lft = NULL, rgt = NULL; UPDATE famille SET gauche = NULL, droite = NULL;
-- pour chaque racine -- pour chaque racine
FOR root IN FOR root IN