Containers docker pour legilibre/legi.py :
- télécharges et maintient la base LEGI depuis echanges.dila.gouv.fr (~3Go en tgz)
- crée un fichier SQLite, normalise, consolide et corrige les sources brutes (~2h sur un MBP pour le premier fichier)
- convertit via pgloader et expose une base PostgreSQL (~7mins sur un MBP)
Le dossier par défaut de stockage est ./tarballs
.
La base LEGI contient le texte intégral consolidé de la législation et de la réglementation nationale soit 73 codes officiels en vigueur consolidés (et les autres 29 abrogés) depuis 1945.
From scratch, le process complet de récupération, consolidation et conversion peut durer jusqu'à 2h. Une fois la base créée, le process de mise à jour quotidien dure environ 10 minutes.
# créer les containers
docker-compose up -d
# télécharger et mettre à jour la base legilibre LEGI
docker-compose run legi.py /usr/bin/update
# créer une base dans le container postgres
docker-compose exec postgres createdb -U user legi
# lancer la conversion sqlite -> postgres
docker-compose run --rm pgloader pgloader -v /scripts/legi.load
💡 Le script ./start.sh lance toutes ces commandes pour vous.
Ajouter dans un cron sur la machine hôte avec crontab -e
pour mettre à jour la DB périodiquement :
0 7 * * * root /home/user/legi-postgres/update.sh
L'instance PostgreSQL est exposée sur :
- le port 5444
- compte master : à définir dans
docker-compose.override.yml
- compte readonly : legi/legi
Le script ./update.sh lance cette étape automatiquement.
Sinon :
cd tarballs
wget -m -t0 -nH -nd ftp://echanges.dila.gouv.fr/LEGI
https://explainshell.com/explain?cmd=wget+-m+ftp%3A%2F%2Fechanges.dila.gouv.fr%2FLEGI+-t0+-nH