Erreur du script d'upgrade J3 vers J4

Plus d'informations
il y a 6 mois 4 semaines #5392 par teicee
Bonjour,

J'ai effectué une mise à jour d'un Joomla 3 avec GMapFP (free) vers Joomla 4 :
  • Site Joomla 3 avec la dernière version (3.10.12)
  • Extensions GMapFP mises à jour et désactivées
  • Lancement de la mise à jour vers Joomla 4 (4.4.4)
  • Installation de GMapFP avec l'archive gmapfp_J4_16F.zip
J'obtiens alors le message d'erreur suivant : Unknown column 'access' in 'where clause'

Effectivement ma table "gmapfp" ne dispose pas de la colonne "access"...
Il semble que l'upgrade soit mal géré dans le "script.php" de "com_gmapfp_J4_16F" :
  • ligne 151: met a jour le champ access
  • ligne 158: détect table J3 installée
Je pense qu'il faudrait inverser ces deux actions pour que la méthode "updateJ3_J4" soit effectuée avant la mise à jour de la valeur "access".

Cordialement

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 6 mois 4 semaines #5393 par gmapfp
Bonjour,

Oui, en effet, il faut inverser ces deux actions.
Par contre, cela n'explique pas ton message : Unknown column 'access'

Peux tu m'envoyer un accès super admin à ton site par le formulaire de contact ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 6 mois 4 semaines #5394 par teicee
Bonjour,

J'avais effectué l'inversion dans le script d'upgrade et je peux confirmer que la mise à jour se passe alors correctement.

Pour moi cela explique bien le message d'erreur, rencontré lors de la requête :
"UPDATE `#__gmapfp` SET access = 1 WHERE access = 0;"

A ce moment là avec le script d'origine, la méthode "updateJ3_J4()" n'a pas encore été appelée : ma table "gmapfp" est encore avec l'ancien schema J3 qui ne contient pas la colonne "access".

(désolé, je n'ai pas d'accès à accorder)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 6 mois 4 semaines #5395 par gmapfp
Bonjour,

Si cela fonctionne pour vous, tant mieux.
Le message : Unknown column 'access' in 'where clause'
signifie qu'il n'arrive pas à trouver le champ access dans la table.
Le fait qu'il soit à 0 ou à 1 n'y change rien.

Si cela fonctionne maintenant sur votre site, j'aurais tendance à croire que le script de mise à jour ne s'est pas exécuter lors de son premier passage.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 6 mois 4 semaines #5397 par teicee
Je travaille sur une version de test avec docker, que je peux réinitialiser dans son état d'origine avant migration. J'ai donc pu valider la correction en effectuant à nouveau l'opération complète.

Le fait que le champs "access" soit à 0 ou à 1 ne change effectivement rien, par contre le fait qu'il n'existe pas encore dans le schéma change tout ! ;)

En partant de ma db J3, la colonne n'est pas encore ajoutée dans la table, ce qui rend invalide un UPDATE sur ce champs inexistant. D'où l'importance d'appeler juste avant la méthode updateJ3_J4() qui s'en charge avec ses ALTER TABLE.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.140 secondes
Propulsé par Kunena
FaLang translation system by Faboba