YunoHost-Apps / garradin_ynh

Logiciel libre de gestion associative pour YunoHost
https://garradin.eu/
GNU General Public License v3.0
7 stars 8 forks source link

(wtf) Your version of Garradin is too old to be updated. #46

Closed husano closed 3 years ago

husano commented 3 years ago

Bonjour,

comme je ne sais pas si vous parlez français, j'ai traduis plus bas en anglais.

Pour la seconde fois en 2 ans, il apparaît ce message lorsque je lance Garradin depuis le sso de Yunohost : issue4 La première fois j'ai réinstallé mais là je voudrais comprendre.

Que dois-je modifier pour que ça fonctionne correctement ?

Ci dessous le log de mise à jour. enugiziyid.txt

Merci du temps que vous consacrerez pour me répondre.

Hello,

For the second time in 2 years, this message appears "Your version of Garradin is too old to be updated. Upgrade to Garradin 0.9.8 before upgrading to this version" when I launch Garradin from Yunohost sso

Yunohost is up to date and Garradin in version 1.0.6~ynh1 as in the log.

The first time I reinstalled but now I would like to understand. What do I have to change for it to work properly?

Below is the update log. enugiziyid.txt

Thank you for the time you will take to answer me.

BenoitCier commented 3 years ago

Oui on parle français (et pour ma part beaucoup mieux que anglais)

Tu as sauté des mises a jour ce qui a généré le problème

Dans un premier temps tu peux restaurer la sauvegarde d'avant la mise a jour (dans le panneaux d'administration de Yunohost sauvegarde, tu devrait trouvé une sauvegarde nommé garradin-pre-upgrade attention si il y en a plusieurs a bien prendre la dernière)

BenoitCier commented 3 years ago

En parallèle, je réflechi a une solution... étonnant yunohost semble dire que tu passe de la 1.0.5 a la 1.0.6 ? peut tu me confirmer que tu est bien en 1.0.5 avant la mise a jour?

rodinux commented 3 years ago

C'est très bizarre, n'as-tu pas une ancienne sauvegarde de garradin qui date de la version 0.9.6 de Garradin qui traîne dans les archives ? Sinon en effet, tu sembles pourtant avoir une version 1.0.5 dans les logs... Ce que je trouve curieux, c'est ces lignes:

YNH_APP_INSTANCE_NAME: garradin__2
YNH_APP_INSTANCE_NUMBER: '2'

Comme si il y avait 2 installations ? Faire une sauvegarde des données via l'administration de garradin aussi peut être utile...

husano commented 3 years ago

D'abord merci pour ta réactivité.

Pour ce qui est de la version, c'est assez fou-fou je dirais. Je m'explique. En fait, j'ai 2 instances de l'application Garradin dans mon Younohost. Une pour l'année 2019 et une pour 2020. Si ça se trouve, je connais mal l'application. Je n'ai pas trouvé comment recréer un second exercice à la suite de mon année 2019. Mais ça c'est plus un souci d'usage. Bref. Comme tu peux le voir, la version est différente. Étrange non ? ga19 & ga2020

Est ce que le fait d'utiliser 2 instances aurait occasionné le bug ?

Parce que malgré tout, j'ai désinstallé les 2 applis pour les restaurer.

Et celle nommée ga19 en version 0.9.6 refonctionne parfaitement (mais en fait celle ci m'intéresse peu) par contre, celle en cours (évidemment) en version 1.0.5 m'affiche toujours le même message d'erreur.

Est ce qu'il y a une solution pour extraire les données brutes -dans mon cas juste la compta ? De manière générale, c'est un peu embêtant mais notre asso est en pleine restructuration et les comptes sont comme le reste, un peu bancal. Je peux me replier sur un fichier Tableur qui va bien. Ce serait un plus si je pouvais faire une extraction des lignes d'écritures...

Par contre, pour toi, il doit y avoir une énigme autour du fait que la même application, instanciée deux fois ne soit pas dans la même version.

Si tu as des pistes je suis preneur.

En attendant, la bonne journée.

david

husano commented 3 years ago

@rodinux : Bonjour, comme tu peux le lire dans mon dernier comment, j'ai bien 2 installations. Mais peut être que c'est le truc à pas faire ?

rodinux commented 3 years ago

C'est sûrement ça qui cloche... Pour extraire les données de ton application, dans l'administration de Garradin tu as une fonction 'Export' pour exporter tes données. Je pense qu'il y a d'autres fonctions Export ou Import aussi...

Peut-être que tu peux:

Normalement ensuite, tu fermes l'exercice dans la comptabilité... Après je ne suis pas très doué en compta. Mais je crois qu'il vaut mieux que tu n'ais qu'une instance Garradin à jour, c'est sûr. Et de réunir la compta ancienne dans un exercice pour 2019 avec aussi un exercice 2020...

BenoitCier commented 3 years ago

Garradin fonctionne bien avec plusieurs instance sur Yunohost (et avec des versions différentes (j'ai un serveur avec 6 instances et encore des 0.9.8 mais aussi des 1.0.6) donc le problème ne viens pas de là.

Par contre tu n'a pas besoin d'avoir une instance par exercice tu peut avoir plusieur exercice dans garradin (surtout que c'est beaucoup mieux gérer dans la version 1.

Dans garradin tout est stocké dans une base sqlite tu peut récupérer ce fichier (dans /var/www/garradin__2/www/)

Ta base de donnée sqlite n'a pas reçu la mise a jour de la 0.9.8 donc impossible de mettre a jour vers la 1.0.5.

N'aurait tu pas une sauvegarde nommé garradin--2-preupgrade1 ?

J'en parle avec le devellopeur pour trouver une solution.

bohwaz commented 3 years ago

Du fait que la 1.0 est une évolution majeure (et du coup une grande partie du code a été réécrite), cela demande d'avoir déjà fait la mise à jour vers 0.9.8 avant de passer à la 1.0. C'est dû au fait que du vieux code n'est plus disponible pour faire les mises à jour précédentes.

Le fait de devoir passer par une version intermédiaire est documenté dans les notes de version et la doc : https://fossil.kd2.org/garradin/wiki?name=Mise+%C3%A0+jour

Malheureusement il n'est pas possible de faire autrement, désolé. Il faut donc respecter le chemin de migration : 0.9.8, puis 1.0.6.

Cordialement.

BenoitCier commented 3 years ago

Bon la solution que j'ai trouvé consisterai a regenéré une branch du dépot a partir du dernier commit de la 0.9.8. et de forcer la mise a jour a partir de cette branche dans un premier temps puis de faire une mise a jour normal ensuite pour bien passer par la 0.9.8

C'est un peu du bricolage mais bon!

Une fois la version 0.9.6 restauré (si tu as bien la sauvegarde garradin--2-preupgrade1 )

sudo yunohost app upgrade garradin__2 -u https://github.com/YunoHost-Apps/garradin_ynh/tree/0.9.8 --debug

puis tu te connecte a garradin (il va faire la mise a jour vers la 0.9.8)

sudo yunohost app upgrade garradin__2

Il faudra que tu fasse la meme chose avec les deux applications garradin

BenoitCier commented 3 years ago

@rodinux : il y aurait des pistes de solution du coté de l'apps gitlab, mais je n'ai pas trop le temps de m'y pencher il faudrait revoir le script upgrade pour qu'il passe forcément par la 0.9.8 et en passant appeler les scripts upgrade de garradin

rodinux commented 3 years ago

@rodinux : il y aurait des pistes de solution du coté de l'apps gitlab, mais je n'ai pas trop le temps de m'y pencher il faudrait revoir le script upgrade pour qu'il passe forcément par la 0.9.8 et en passant appeler les scripts upgrade de garradin

Salut, oui on pourrait ajouter dans l'upgrade une condition...

if YNH_APP_CURRENT_VERSION: 0.9.6~ynh1

Je ne sais pas si dans ce cas on peut rajouter 2 sources dans le fichier app.src ? ou si la condition pourrait imposer d'utiliser les scripts de la branche 0.9.8 ? comment ?

Autre chose qui m'interroge, le fichier nginx.conf de la version 0.9.8 était légèrement différent. J'ai aidé aussi une personne avec ce soucis de version 0.9.6 et avait créer un dépôt pour cette upgrade (https://git.rodinux.fr/gitea/My-Yunohost-Apps-tests/garradin_ynh/src/branch/old-version), le fichier nginx.conf ressemblait à ceci: https://git.rodinux.fr/gitea/My-Yunohost-Apps-tests/garradin_ynh/src/branch/old-version/conf/nginx.conf.

A voir comment faire, je ne peux même pas tester, car je n'ai plus de version 0.9.6 valable...

Il y a un argument plus intéressant et à propos qui existe déjà dans l'update ynh_compare_current_package_version

Usage: ynh_compare_current_package_version --comparison lt|le|eq|ne|ge|gt | eq (equal), ne (not equal), ge (greater or equal), gt (greater than)

Arguments:

```--comparison```:

Comparison type. Could be : lt (lower than), le (lower or equal),

--version: The version to compare. Need to be a version in the yunohost package version type (like 2.3.1~ynh4)

Example: ynh_compare_current_package_version --comparison lt --version 2.3.2~ynh1 This example will check if the installed version is lower than (lt) the version 2.3.2~ynh1

Details: Generally you might probably use it as follow in the upgrade script

if ynh_compare_current_package_version --comparison lt --version 2.3.2~ynh1
then
# Do something that is needed for the package version older than 2.3.2~ynh1
fi

Return 0 if the evaluation is true. 1 if false.

rodinux commented 3 years ago

Il faudra que tu fasse la meme chose avec les deux applications garradin

Je ne sais pas si j'ai bien compris, l'idée est de rétrograder sa version 1.0.5 ? C'est possible à faire ?

BenoitCier commented 3 years ago

je pense que ça peut marcher (mais dans l'idée c'est de reinstallé la sauvegarde preupgrade dabord)

husano commented 3 years ago

Bonjour, je n'étais pas trop présent hier pour voir toutes vos réponses et propositions de contournement. Encore merci à vous. Je vais prendre le temps de tester ce que vous me proposez. Je reviendrai vers vous pour vous dire ce que j'ai réussi à faire.

En tout cas, la bonne journée !

husano commented 3 years ago

Bon la solution que j'ai trouvé consisterai a regenéré une branch du dépot a partir du dernier commit de la 0.9.8. et de forcer la mise a jour a partir de cette branche dans un premier temps puis de faire une mise a jour normal ensuite pour bien passer par la 0.9.8

C'est un peu du bricolage mais bon!

Une fois la version 0.9.6 restauré (si tu as bien la sauvegarde garradin--2-preupgrade1 )

sudo yunohost app upgrade garradin__2 -u https://github.com/YunoHost-Apps/garradin_ynh/tree/0.9.8 --debug

puis tu te connecte a garradin (il va faire la mise a jour vers la 0.9.8)

sudo yunohost app upgrade garradin__2

Il faudra que tu fasse la meme chose avec les deux applications garradin

Bonjour Benoît, j'ai enfin trouvé quelques minutes pour reprendre là où je m'étais arrêté. Heureusement, j'avais une sauvegarde de mes deux instances du mois de novembre. J'ai suivi ton "bricolage" et ça a parfaitement fonctionné. Elles sont dorénavant en version 1.0.6 après être passées par la version 0.9.8. Je tiens encore à te remercier, maintenant il me faut comprendre comment clore l'exercice passé et relancer le nouveau dans la même instance. Bonne journée

rodinux commented 3 years ago

@rodinux : il y aurait des pistes de solution du coté de l'apps gitlab, mais je n'ai pas trop le temps de m'y pencher il faudrait revoir le script upgrade pour qu'il passe forcément par la 0.9.8 et en passant appeler les scripts upgrade de garradin

Bon, j'ai tenté sans succès de créer un script qui aurait d'abord appelé une pré-installation de la version 0.9.8, mais ça ne marche pas, car il faut se reconnecter pour finaliser la mise à jour, du coup j'opte pour une interruption et un message qui explique de faire cette pré-upgrade avec la branche 0.9.8... Par contre je n'y arrive pas en essayant d'abord avec la branche 0.8.5 qui utilise php-7.2, seulement quand j'essaie d'importer une sauvegarde plus récente, sinon ça marche...

BenoitCier commented 3 years ago

C'est éventuellement une solution. je doit mettre a jour un certain nombre de 0.9.6, je vais voir si je peut faire marcher le script a ce moment là (peut être dans la semaine)

rodinux commented 3 years ago

C'est éventuellement une solution. je doit mettre a jour un certain nombre de 0.9.6, je vais voir si je peut faire marcher le script a ce moment là (peut être dans la semaine)

Pour le coup, ce n'est pas un script, mais juste un message: _"Sorry your version is outdated and need first an update to version 0.9.8.1 with the branch 0.9.8, proceed like that: 'sudo yunohost app upgrade garradin -u https://github.com/YunoHost-Apps/garradin_ynh/tree/0.9.8 --debug' and open your admin page to finalize before next update_"

BenoitCier commented 3 years ago

J'ai fait des test ce matin

il faut faire un appel a ynh_local_curl "/admin/index.php"

a la fin du script d'upgrade, je finalise un script qui marche cette aprem

rodinux commented 3 years ago

J'ai fait des test ce matin

il faut faire un appel a ynh_local_curl "/admin/index.php"

a la fin du script d'upgrade, je finalise un script qui marche cette aprem

Ok, l'idée étant que la mise à jour se finalise bien à chaque fois... J'ai essayé au début de créer un autre fichier 0.9.8.src qui aurait été appeler pour une pré-upgrade avec cette commande pour finaliser, mais ça ne fonctionnait pas vraiment... Ceci dit je devais faire mes tests à partir de la version 0.8.5 qui ne supporte que php-7.2 et qui supporte mal l'upgrade même vers 0.9.8... Si tu y arrives (à finaliser avec cette commande) alors peut-être que l'on arrive à revenir sur un script qui fait une pré-upgrade suivi de la dernière mise à jour, qui sait ??

BenoitCier commented 3 years ago

Ca marche en local en installant la branch 0.8.5 et upgrade dirrecte en 1.0.7, le code est pas très propre... Par contre mon !testme ne se lance pas

rodinux commented 3 years ago

J'approuve et je merge, même si c'est un peu tarabiscoté en effet... l'important est que ça fonctionne... J'ai constaté un drôle de truc au moment de la commande ynh_curl dans les messages :

Attention : /etc/kernel/postrm.d/initramfs-tools:
Attention : update-initramfs: Deleting /boot/initrd.img-4.19.0-9-amd64
Attention : /etc/kernel/postrm.d/zz-update-grub:
Attention : Generating grub configuration file ...
Attention : Found linux image: /boot/vmlinuz-4.19.0-16-amd64
Attention : Found initrd image: /boot/initrd.img-4.19.0-16-amd64
Attention : Found linux image: /boot/vmlinuz-4.19.0-14-amd64
Attention : Found initrd image: /boot/initrd.img-4.19.0-14-amd64
Attention : done

mais cela n'a pas l'air d'être grave...

Autre comportement étrange que je n'explique pas depuis la dernière version, quand on se déconnecte on revient sur la page SSO de Yunohost, avant on revenait sur la page public du site...

bohwaz commented 3 years ago

@rodinux ça ça dépend peut-être de si tu as activé ou désactivé le site public ? La déconnexion redirige vers WWW_URL en tout cas normalement.

BenoitCier commented 3 years ago

J'approuve et je merge, même si c'est un peu tarabiscoté en effet... l'important est que ça fonctionne... J'ai constaté un drôle de truc au moment de la commande ynh_curl dans les messages :

Attention : /etc/kernel/postrm.d/initramfs-tools:
Attention : update-initramfs: Deleting /boot/initrd.img-4.19.0-9-amd64
Attention : /etc/kernel/postrm.d/zz-update-grub:
Attention : Generating grub configuration file ...
Attention : Found linux image: /boot/vmlinuz-4.19.0-16-amd64
Attention : Found initrd image: /boot/initrd.img-4.19.0-16-amd64
Attention : Found linux image: /boot/vmlinuz-4.19.0-14-amd64
Attention : Found initrd image: /boot/initrd.img-4.19.0-14-amd64
Attention : done

Il y a un autoremove qui se lance quelque part lors de la mise a jour d'ou se log étonnant

mais cela n'a pas l'air d'être grave...

Autre comportement étrange que je n'explique pas depuis la dernière version, quand on se déconnecte on revient sur la page SSO de Yunohost, avant on revenait sur la page public du site...

Je vais voir si je peut reproduire le problème

Je clos cettte issu