Un bug pendant la migration contourné..
vouf Membre non connecté
Booster Fuzil
- Booster Fuzil
- Voir le profil du membre vouf
- Inscrit le : 31/05/2019
- Site internet
- Groupes :
Nous venons de migrer notre <a href="https://www.mageialinux-online.org">site MLO</a> vers la dernière version de phpboost 5.2.2. Pour information, lors de l'update le processus s'est interrompu. En regardant le fichier error dans le cache généré par l'update, je suis tombé sur l'erreur suivvante :
Code PHP :
invalid query. (ERRNO 1265) Data truncated for column 'location_script' at row 76<hr />query: ALTER TABLE phpboost_sessions CHANGE location_script location_script VARCHAR(200) NOT NULL DEFAULT ""<br />#0 /home/mageiaonline/public_html/www/kernel/framework/io/db/driver/mysql/MySQLQuerier.class.php(33): MySQLQuerier->execute('ALTER TABLE php...', Array)<br />#1 /home/mageiaonline/public_html/www/kernel/framework/io/db/DBQuerier.class.php(38): MySQLQuerier->inject('ALTER TABLE php...', Array)<br />#2 /home/mageiaonline/public_html/www/update/services/UpdateServices.class.php(270): DBQuerier->inject('ALTER TABLE php...')<br />#3 /home/mageiaonline/public_html/www/update/services/UpdateServices.class.php(200): UpdateServices->update_kernel_tables()<br />#4 /home/mageiaonline/public_html/www/update/controllers/UpdateVersionExecuteController.class.php(151): UpdateServices->execute()<br />#5 /home/mageiaonline/public_html/www/update/controllers/UpdateVersionExecuteController.class.php(34): UpdateVersionExecuteController->handle_form()<br />#6 /home/mageiaonline/public_html/www/kernel/framework/mvc/dispatcher/UrlControllerMapper.class.php(68): UpdateVersionExecuteController->execute(Object(HTTPRequestCustom))<br />#7 /home/mageiaonline/public_html/www/kernel/framework/mvc/dispatcher/UrlControllerMapper.class.php(40): UrlControllerMapper->do_call()<br />#8 /home/mageiaonline/public_html/www/kernel/framework/mvc/dispatcher/Dispatcher.class.php(47): UrlControllerMapper->call()<br />#9 /home/mageiaonline/public_html/www/kernel/framework/mvc/dispatcher/DispatchManager.class.php(26): Dispatcher->dispatch()<br />#10 /home/mageiaonline/public_html/www/update/index.php(68): DispatchManager::dispatch(Array)<br />#11 {main} /home/mageiaonline/public_html/www/kernel/framework/io/db/driver/mysql/MySQLQuerier.class.php
En gros la requête suivante ne passait pas
Code SQL :
ALTER TABLE phpboost_sessions CHANGE location_script location_script VARCHAR(200) NOT NULL DEFAULT
En la jouant sous mysql, on voit que le moteur la rejette. A la place, j'ai joué
Code SQL :
ALTER TABLE phpboost_sessions CHANGE location_script location_script VARCHAR(200) NOT NULL
En l'enlevant DEFAULT, elle est passée. J'ai pu relancer le processus d'update et aller au bout de la migration.
Ça peut vous être utile..
Administrateur du site www.mageialinux-online.org
DEV phpboost 6.0.2- php 8.1.20 - mariadb 10.11.3 - Mageia 9
PROD phpboost 6.0.2- php 8.1.20 -mariadb 10.11.3 - Mageia 9
DEV phpboost 6.0.2- php 8.1.20 - mariadb 10.11.3 - Mageia 9
PROD phpboost 6.0.2- php 8.1.20 -mariadb 10.11.3 - Mageia 9
ElenWii Membre non connecté
- Administrateur
- Voir le profil du membre ElenWii
- Inscrit le : 14/08/2009
- Site internet
- Groupes :
- Equipe Graphique
janus57 Membre non connecté
- Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
- Equipe Assistance
Possible de préciser le version de MySQL et si c'est vraiment MySQL ou MariaDB (les deux fonctionne différemment maintenant et MySQL est beaucoup plus contraignant) ?
EDIT :
La requête que vous avez collé plus haut est bien 100% identique à ce que vous aviez dans le fichier à savoir :
Code SQL :
ALTER TABLE ' . PREFIX . 'sessions CHANGE location_script location_script VARCHAR(200) NOT NULL DEFAULT ""
Car a priori il manque les "" après le DEFAULT.
EDIT 2 :
Le site était en maintenance lors de l'upgrade ?
Possible d'avoir les logs d'upgrade présent dans le répertoire /update ?
Cordialement, janus57
Édité par janus57 Le 09/06/2019 à 11h27
vouf Membre non connecté
Booster Fuzil
- Booster Fuzil
- Voir le profil du membre vouf
- Inscrit le : 31/05/2019
- Site internet
- Groupes :
Le site était bien en mode maintenance, avec uniquement moi qui pouvait y accéder dans la mesure ou j'avais limité mon IP lors de la migration.
J'ai eu le soucis deux fois. Une fois sur mon environnement de test d’intégration sur une mageia 7 RC avec mariadb:
Apache/2.4.39 (Mageia) PHP/7.3.6 mod_perl/2.0.10 Perl/v5.28.2
MySQL 10.3.15-MariaDB
Les erreurs du error.log sous le répertoire cache : https://pastebin.com/ChvZBhLB
Et également, sur le serveur de production avec une gentoo avec mysql.
SERVER CONFIGURATION-----------------------------------------------------------
php version: 7.2.19
dbms version: MySQL 5.7.25-log
Pour ce site, je n'ai plus de log car le cache a été vidé.
A noté, que le problème n'est pas systématique. Dans mes tests précédents, je ne l'avais pas rencontré...
NB : en mode commande
Code SQL :
mysql> ALTER TABLE mlo_v4_prod.phpboost_sessions CHANGE location_script location_script VARCHAR(200) NOT NULL ""; ERROR 1064 (42000): You have an error IN your SQL syntax; CHECK the manual that corresponds TO your MySQL server version FOR the RIGHT syntax TO USE near '""' at line 1
Édité par vouf Le 09/06/2019 à 12h19
Administrateur du site www.mageialinux-online.org
DEV phpboost 6.0.2- php 8.1.20 - mariadb 10.11.3 - Mageia 9
PROD phpboost 6.0.2- php 8.1.20 -mariadb 10.11.3 - Mageia 9
DEV phpboost 6.0.2- php 8.1.20 - mariadb 10.11.3 - Mageia 9
PROD phpboost 6.0.2- php 8.1.20 -mariadb 10.11.3 - Mageia 9
janus57 Membre non connecté
- Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
- Equipe Assistance
vouf :
NB : en mode commande
NB : en mode commande
Code SQL :
mysql> ALTER TABLE mlo_v4_prod.phpboost_sessions CHANGE location_script location_script VARCHAR(200) NOT NULL ""; ERROR 1064 (42000): You have an error IN your SQL syntax; CHECK the manual that corresponds TO your MySQL server version FOR the RIGHT syntax TO USE near '""' at line 1
Pour le coup il manque le DEFAULT donc le retour est normale.
Ce serait possible d'avoir une copie du site (purgé des éléments perso) non migré pour tester de notre côté ?
Car là il y a un mélange de MySQL 5.7 et MariaDB 10.3 (10.2.4 pour le mode strict) qui ont tout les mode le mode strict d'activé par défaut (du coup on a peut être certaines syntaxes SQL à revoir à cause de ça).
Cordialement, janus57
vouf Membre non connecté
Booster Fuzil
- Booster Fuzil
- Voir le profil du membre vouf
- Inscrit le : 31/05/2019
- Site internet
- Groupes :
Effectivement, j'ai réussi à jouer la requête cette fois ci avec mysql sur le serveur de production.. Le truc que je ne comprends pas, c'est que je n'avais pas eu le soucis sur mon environnement de recette qui est sur le même serveur et qui utilise le même environnement. J'avais recréer un environnement identique à celui de production avec un dump/restore de la base et du site.... Bref très curieux...
Pour la copie du site, ça me parait compliquer à effectuer.
Administrateur du site www.mageialinux-online.org
DEV phpboost 6.0.2- php 8.1.20 - mariadb 10.11.3 - Mageia 9
PROD phpboost 6.0.2- php 8.1.20 -mariadb 10.11.3 - Mageia 9
DEV phpboost 6.0.2- php 8.1.20 - mariadb 10.11.3 - Mageia 9
PROD phpboost 6.0.2- php 8.1.20 -mariadb 10.11.3 - Mageia 9
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie