libertempo / web

Application web de gestion des congés en ligne
GNU General Public License v2.0
68 stars 62 forks source link

Mise à jour et patch SQL : amélioration du mécanisme #174

Closed prytoegrian closed 6 years ago

prytoegrian commented 8 years ago

Le fait que nous ayons dû travailler à plusieurs sur une méga-branche (gestion des heures) m'a fait prendre conscience de la frustration que les patches SQL et les changements de version génèrent.

Actuellement, il y a deux systèmes :

Les problèmes sont l'obligation de duplication du code pour les montées en version et le fait que les changements d'une version X sont noyés dans le patch SQL (il est nécessaire de copier un fichier précédent pour avoir une base complète).

Compte tenu du fait que nous avons pour projet de ne supporter que les versions jusqu'à N-2 à partir de 1.9+, nous pourrions imaginer un nouveau système comme suit :

(ou alors des fichiers de patch préfixés par une date (ou un timestamp, pour éviter les problèmes de date), avec une date de dernier patch en base, je suis pas contrariant. L'essentiel étant l'idée d'incrément, le reste importe peu)

Sous ce format, on augmente la rapidité d'exécution des mises à niveau de version puisque les patches ne seront que du SQL et c'est beaucoup plus pratique pour les développements. La contrepartie c'est qu'une installation de zéro peut potentiellement être plus longue.

Doc : http://cipcnet.insa-lyon.fr/sqltut/nexen/innodb-checkpoints.html http://dev.mysql.com/doc/refman/5.7/en/binary-log.html

prytoegrian commented 7 years ago

Ne peut pas être fait avant #361