Legilibre / legi.py

Outils de manipulation des archives LEGI (lois françaises)
56 stars 19 forks source link

Erreurs à l'initialisation de la base #79

Closed thbz closed 4 years ago

thbz commented 4 years ago

Bonjour,

J'ai essayé d'installer legi.py sur Ubuntu 16.04. Outre quelques difficultés lors de l'installation de hunspell (résolus en installant successivement les packages libhunspell-dev, hunspell et hunspell-fr avec apt-get sous Ubuntu), j'ai eu surtout une erreur SQL avec deux requêtes dans legi/normalize.py lors de l'initialisation de la base :

> python -m legi.tar2sqlite legi.sqlite ./tarballs

(...)
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/local/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/thbz/prog/legi.py/legi/tar2sqlite.py", line 575, in <module>
    main()
  File "/home/thbz/prog/legi.py/legi/tar2sqlite.py", line 568, in main
    normalize_sommaires_num(db)
  File "/home/thbz/prog/legi.py/legi/normalize.py", line 624, in normalize_sommaires_num
    """)
sqlite3.OperationalError: near "AS": syntax error

J'obtiens la même erreur en exécutant la requête en question directement dans le client SLQite en ligne de commande (SQLite 3.11.0).

En supprimant les alias dans les deux requêtes en question ("UPDATE sommaires SET num=...") dans normalize.py, le problème est résolu et j'arrive à la fin de l'initialisation de la base.

Je vois sur plusieurs sites qu'on ne peut pas mettre un alias après un UPDATE (mais seulement après un FROM). Ca marche peut-être dans une version plus récente de SQLite ? (j'utilise celle fournie par apt-get)

Changaco commented 4 years ago

Je ne sais pas exactement dans quelle version de SQLite la gestion du UPDATE ... AS ... a été ajoutée (je ne vois rien à ce sujet dans https://sqlite.org/changes.html), mais la 3.11.0 est clairement trop vieille.

thbz commented 4 years ago

Apparemment cela a été rajouté en avril 2018. Plutôt que d'installer une version plus récente de SQLite, je pense que je migrerai mon Ubuntu qui commence à être vieux. Merci !