pganon
This commit is contained in:
49
Dockerfile
49
Dockerfile
@@ -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 \
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
1
ToDo.md
1
ToDo.md
@@ -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
|
||||||
|
|||||||
@@ -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}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
|
@@ -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
|
||||||
|
);
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user