dolibarr-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Dolibarr-dev] Problèmes à la mise à jour 2.2 -> 2.9


From: Yannick Warnier
Subject: Re: [Dolibarr-dev] Problèmes à la mise à jour 2.2 -> 2.9
Date: Sun, 17 Oct 2010 09:19:20 -0500

Merci Eldy,

Pour détailler un peu les modifs qui ont suivi...

En fait, le champ llx_menu.enabled n'était ajouté que lors de la
migration de 2.4.0 vers 2.5.0.

Le upgrade2.php étant commun à tous les niveaux de migration,
il a été mis à jour "post-2.4" pour utiliser ce champ enabled dans
upgrade2.php::migrate_menus() (qui sert à rejoindre llx_menu_constraint
et llx_menu), ce qui génère non seulement une erreur SQL, mais
possiblement aussi la perte de tous les menus.

Il y avait donc deux solutions:
1) modifier l'appel à migrate menus pour qu'il ne se fasse que lors
d'une migration spécifique
2) modifier le code SQL de migration de la plupart des versions
antérieures pour s'assurer que le champ existe bien depuis n'importe
quelle version.

C'est la seconde piste qui a été prise, notamment ici:
http://cvs.savannah.gnu.org/viewcvs/dolibarr/htdocs/install/mysql/migration/2.2.0-2.4.0.sql?cvsroot=dolibarr&r1=1.4&r2=1.5

Merci,

Yannick


Le mercredi 06 octobre 2010 à 11:39 +0200, Laurent Destailleur (Eldy) a
écrit :
> Merci.
> 
> Je vais essayer de corriger tout cela.
> Tu as par contre fait une mauvaise correction sur le champ enabled
> il faut faire
> alter table llx_menu add column enabled varchar(255) NULL default '1';
> et non tinyint.
> 
> 
> Le 05/10/2010 07:17, Yannick Warnier a écrit :
> > Bonjour à tous,
> >
> > Je viens de faire une première tentative de migration de Dolibarr 2.2
> > vers 2.9.
> >
> > À priori le résultat n'est pas trop mauvais, mais je rencontre quelques
> > problèmes. Je traduis directement de l'espagnol vers le français ici
> > pour simplifier, donc les messages d'erreur ne sont pas à prendre à la
> > lettre.
> >
> > J'utilise xdebug sur la machine, ce qui me donne directement un peu plus
> > de feedback.
> >
> >
> > Lors de 2.2 a 2.4, dans upgrade2.php:
> >
> > ------
> > Migration des données des factures clients
> > Error #1 Unknown column 'fd.tva_tx' in 'field list'
> >
> > Mise à jour de la table des menus dynamiques
> > Xdebug: user triggered in /var/www/dolibarr/htdocs/lib/functions.lib.php
> > on line 1964 Call Stack: 0.0001 328884 1.
> > {main}() /var/www/dolibarr/htdocs/install/upgrade2.php:0 0.0907 1388696
> > 2. migrate_menus() /var/www/dolibarr/htdocs/install/upgrade2.php:231
> > 0.0916 1389116 3.
> > dol_print_error() /var/www/dolibarr/htdocs/install/upgrade2.php:2125
> > 0.0951 1408248 4.
> > xdebug_print_function_stack() 
> > /var/www/dolibarr/htdocs/lib/functions.lib.php:1964 Dolibarr a détecté une 
> > erreur technique.
> > Voici des informations qui pourront vous aider au diagnostic:
> > Date: 20101004032641
> > Dolibarr: 2.9.0
> > PHP: 5.3.2-1ubuntu4.5
> > Servidor: Apache/2.2.14 (Ubuntu)
> >
> > Url demandée: /install/upgrade2.php?versionfrom=2.2.0&versionto=2.4.0
> > Referer:
> > http://[domaine]/install/upgrade.php?action=upgrade_2.4.0&selectlang=es_ES&versionfrom=2.2.0&versionto=2.4.0
> > Gestionnaire de menu:
> >
> > Type de gestionnaire de base de données: mysql
> > Dernière requête erronée à la base de données: SELECT m.rowid, mc.action
> > FROM llx_menu_constraint as mc, llx_menu_const as md, llx_menu as m
> > WHERE md.fk_menu = m.rowid AND md.fk_constraint = mc.rowid AND m.enabled
> > = '1'
> > Message renvoyé: DB_ERROR_NOSUCHFIELD
> > Information sur la dernière erreur: Unknown column 'm.enabled' in 'where
> > clause'
> >
> > XDebug informations:
> > File: /var/www/dolibarr/htdocs/install/upgrade2.php
> > Line: 2125
> > Function: migrate_menus
> > --------
> >
> > Pour corriger ceci j'ai lancé la commande suivante dans la DB: alter
> > table llx_menu add enabled tinyint;
> >
> > J'ai aussi (à l'aveugle) transformé llx_facture_det.tva_taux en tva_tx.
> > Ça a eu l'air de fonctionner: alter table llx_facturedet change column
> > tva_taux tva_tx double default 21.00;
> >
> >
> >
> > Ensuite, etape5.php:
> >
> > ---------
> > Xdebug: user triggered in /var/www/dolibarr/htdocs/lib/functions.lib.php
> > on line 1964 Call Stack: 0.0017 335992 1.
> > {main}() /var/www/dolibarr/htdocs/install/etape5.php:0 0.0732 841564 2.
> > dol_print_error() /var/www/dolibarr/htdocs/install/etape5.php:242 0.0765
> > 860832 3.
> > xdebug_print_function_stack() 
> > /var/www/dolibarr/htdocs/lib/functions.lib.php:1964 Dolibarr ha detectado 
> > un error técnico.
> > He aquí la información que podrá ayudar al diagnóstico:
> > Fecha: 20101004033303
> > Dolibarr: 2.9.0
> > PHP: 5.3.2-1ubuntu4.5
> > Servidor: Apache/2.2.14 (Ubuntu)
> >
> > Url solicitada: /install/etape5.php?versionfrom=2.2.0&versionto=2.4.0
> > Referer:
> > http://ywarnier.beeznest.net/install/upgrade2.php?versionfrom=2.2.0&versionto=2.4.0
> > Gestor de menú:
> >
> > Tipo de gestor de base de datos: mysql
> > Petición último acceso a la base de datos erróneo: INSERT INTO
> > llx_const(name,value,type,visible,note,entity)
> > values('MAIN_VERSION_LAST_UPGRADE','2.4.0','chaine',0,'Dolibarr version
> > for last upgrade',0)
> > Código devuelto último acceso a la base de datos erróneo:
> > DB_ERROR_NOSUCHFIELD
> > Información sobre el último acceso a la base de datos erróneo: Unknown
> > column 'entity' in 'field list'
> >
> > Message: Error in setup program
> > XDebug informations:
> > File: /var/www/dolibarr/htdocs/install/etape5.php
> > Line: 242
> > Function: {main}
> > -------
> >
> > Pour ceci j'ai lancé: alter table llx_const add column entity int;
> >
> > 2.5 à 2.6: tout bon.
> > 2.6 à 2.7: tout bon.
> > 2.7 à 2.8: tout bon.
> >
> >
> > Par contre, lorsque l'installation semble terminée, je constate qu'aucun
> > module n'est actif (il faut les réactiver dans la page de configuration
> > ->  modules), que je n'ai plus de date ni de détails de fondation de mon
> > entreprise.
> > En jetant un coup dans la table llx_dolibarr_module, je vois ceci (dans
> > l'ordre: numero, entity, active, active_date, version):
> >
> > -----
> > 0 1 1 2008-01-07 02:29:10 1.19
> > 1 1 1 2006-10-30 20:51:37 1.41
> > 2 1 1 2006-06-11 04:20:56 1.26
> > 10 1 1 2006-06-11 04:20:34 1.40
> > 0 1 1 2006-06-11 04:20:50 1.47
> > 23 1 1 2006-06-11 04:22:21 1.8
> > 25 1 1 2006-06-11 04:20:55 1.37
> > 30 1 1 2006-06-11 04:20:34 1.55
> > 40 1 1 2006-10-30 20:51:36 1.43
> > 50 1 1 2006-06-11 04:21:27 1.38
> > 53 1 1 2006-06-11 04:21:27 1.27
> > 70 1 1 2006-06-11 04:21:02 1.26
> > 75 1 1 2006-06-11 04:21:05 1.8
> > 85 1 1 2006-06-11 04:20:35 1.30
> > 400 1 1 2006-06-11 04:21:34 1.21
> > 500 1 1 2006-10-30 21:04:12 1.2
> > -------
> >
> > Un rapide coup d'oeil au code ne me permet pas de comprendre comment se
> > détermine si un module est installé ou pas. Du coup c'est un peu plus
> > compliqué pour comprendre l'erreur. Où est-ce qu'on voit ça (dans le
> > code et dans la DB)?
> >
> > Apparemment, durant la migration de 2.7 à 2.8, le champ tva_taux de
> > llx_facturedet est effectivement changé de nom pour tva_tx, mais dans ce
> > cas, ça me paraît suspect d'avoir déjà des messages d'erreur qui
> > apparaissent lors de la migration de 2.2 à 2.4.
> >
> > Yannick
> >
> >
> >
> >
> > _______________________________________________
> > Dolibarr-dev mailing list
> > address@hidden
> > http://lists.nongnu.org/mailman/listinfo/dolibarr-dev
> 
> 
> _______________________________________________
> Dolibarr-dev mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/dolibarr-dev




reply via email to

[Prev in Thread] Current Thread [Next in Thread]