PnX-SI / GeoNature

Application de saisie et de synthèse des observations faune et flore
GNU General Public License v3.0
98 stars 99 forks source link

Mise à jour de SQLAlchemy 1.3 → 1.4 → 2.0 #1812

Open bouttier opened 2 years ago

bouttier commented 2 years ago

SQLAlchemy 1.3 est obsolète. Cette version bénéficie encore de mise à jour de sécurité mais ça ne sera plus le cas lorsque la version 2.0 de SQLAlchemy, actuellement en développement, sera releasé (d’ici 1 an ?). C’est un évènement à anticiper car la migration peut s’avérer assez longue, notamment en raison de pas mal de tests nécessaire sur l’ensemble des requêtes exécutées par GeoNature. D’autre part, cette migration permettrait de bénéficier des améliorations et fonctionnalités apportées par SQLAlchemy 1.4.

Changements : https://docs.sqlalchemy.org/en/14/changelog/migration_14.html

bouttier commented 1 year ago

Cette mise à jour bloque Flask-SQLAlchemy en version <3

bouttier commented 1 year ago

Il y a de plus en plus de warnings lié en particulier à Flask-SQLAlchemy, qui ne peut pas être mis à jour car la nouvelle version demande SQLAlchemy 1.4.

bouttier commented 1 year ago

La version 2.0 de SQLAlchemy est sortie le 26 janvier 2023. La version 1.4 de SQLAlchemy devient LEGACY à son tour. Nous avons à présent 2 versions majeurs de retard.

camillemonchicourt commented 5 months ago

Support de présentation de la migration de SQLA 1.3 à 1.4 puis 2.0 du COTECH du 5 décembre 2023 : GeoNature-MAJ-SQLA.pdf

jacquesfize commented 4 months ago

La mise à jour vers SQLA 1.4 inclut le changement de style de requête de 1.x à 2.x. Pour le changement de style de requête se référer à la documentation de SQLA https://docs.sqlalchemy.org/en/20/changelog/migration_20.html#migration-orm-usage. Elle propose un tableau de correspondance entre les deux styles (1.x et 2.x) sur une même requête.

Vous pourrez trouver un brouillon de cheatsheet ici : https://github.com/orgs/PnX-SI/projects/16/views/1?pane=issue&itemId=44420419

camillemonchicourt commented 4 months ago

Mise à jour vers SQLA 1.4 intégré dans la 2.14.0. Prochaine étape : mise à jour vers SQLA 2.0.