Hello all,

as this is my first post, let me quickly present myself:
I am part of Demo-TIC, a structure that uses, creates and promotes Free
Software.
We use Dolibarr since version 2.9.0, mainly for invoices, proposal and
structure's membership.


Dolibarr is very useful and always improving, which is great to see and
a pleasure to mention. :-)


With version 3.1.0  being released, I've updated our testing
installation from v2.9.0 to v3.1.0, following documentation and using
our production database.


All went smoothly on 2.9.0 to 3.0.0 update.
But on 3.0.0 to 3.1.0 two errors popped up on data migration (see
'3.0.0-3.1.0_data_migration_error' attached file).

Looking at upgrade process, it appeared that this was due to
2.9.0-3.0.0.sql and 3.0.0-3.1.0.sql scripts.

2.9.0-3.0.0.sql contains some comment lines starting with "--" that are
not followed by a space (mandatory following space is a mysql regression
bug, and I've seen that almost all of these lines have already been
corrected).

3.0.0-3.0.1.sql contains updates that made errors (unknown tables,
columns, and indexes, impossible for mysql to find meaning of
__DECRYPT('name')__  and so on).

So that you'll find a patch made upon latest git 3.1 branch of Dolibarr.
(Note that I did not removed last "insert into llx_c_actioncomm…" lines,
even though they were not needed on my installation.)

Can you please take attached git patch into account ?


Before looking deeper, I also wanted to know if this is normal
behaviour: mysql sql migration scripts made errors but upgrade process
do not alert administrator !?!



Keep up the good work !

Regards,
-- 
Fernando Lagrange
Demo-TIC - Outils En Ligne
http://www.demo-tic.org
Tél.: 06 63 16 30 47 (le jeudi après-midi)
Mél.: [email protected]
Jabber/XMPP: [email protected]
Installation ou mise à jour de Dolibarr
Migration des données

Mise à jour des données des actions des éléments
Dolibarr a détecté une erreur technique.
Voici les informations qui pourront aider au diagnostic:
Date: 20120114175507
Dolibarr: 3.1.0
Niveau de fonctionnalités: 0
PHP: 5.3.3-7+squeeze3
Serveur: Apache/2.2.16 (Debian)

Url sollicitée: /install/upgrade2.php?versionfrom=3.0.0&versionto=3.1.0
Referer: 
http://gestion-test.demo-tic.org/install/upgrade.php?action=upgrade&selectlang=fr_FR&versionfrom=3.0.0&versionto=3.1.0
Gestionnaire du menu standard: eldy_backoffice.php

Type gestionnaire de base de données: mysqli
Requête dernier accès en base en erreur: UPDATE llx_actioncomm SET fk_element = 
propalrowid, elementtype = 'propal' WHERE propalrowid IS NOT NULL AND 
fk_element IS NULL AND elementtype IS NULL
Code retour dernier accès en base en erreur: DB_ERROR_NOSUCHFIELD
Information sur le dernier accès en base en erreur: Unknown column 'fk_element' 
in 'where clause'

Dolibarr a détecté une erreur technique.
Voici les informations qui pourront aider au diagnostic:
Date: 20120114175507
Dolibarr: 3.1.0
Niveau de fonctionnalités: 0
PHP: 5.3.3-7+squeeze3
Serveur: Apache/2.2.16 (Debian)

Url sollicitée: /install/upgrade2.php?versionfrom=3.0.0&versionto=3.1.0
Referer: 
http://gestion-test.demo-tic.org/install/upgrade.php?action=upgrade&selectlang=fr_FR&versionfrom=3.0.0&versionto=3.1.0
Gestionnaire du menu standard: eldy_backoffice.php

Type gestionnaire de base de données: mysqli
Requête dernier accès en base en erreur: UPDATE llx_actioncomm SET fk_element = 
fk_commande, elementtype = 'order' WHERE fk_commande IS NOT NULL AND fk_element 
IS NULL AND elementtype IS NULL
Code retour dernier accès en base en erreur: DB_ERROR_NOSUCHFIELD
Information sur le dernier accès en base en erreur: Unknown column 'fk_element' 
in 'where clause'

Dolibarr a détecté une erreur technique.
Voici les informations qui pourront aider au diagnostic:
Date: 20120114175507
Dolibarr: 3.1.0
Niveau de fonctionnalités: 0
PHP: 5.3.3-7+squeeze3
Serveur: Apache/2.2.16 (Debian)

Url sollicitée: /install/upgrade2.php?versionfrom=3.0.0&versionto=3.1.0
Referer: 
http://gestion-test.demo-tic.org/install/upgrade.php?action=upgrade&selectlang=fr_FR&versionfrom=3.0.0&versionto=3.1.0
Gestionnaire du menu standard: eldy_backoffice.php

Type gestionnaire de base de données: mysqli
Requête dernier accès en base en erreur: UPDATE llx_actioncomm SET fk_element = 
fk_facture, elementtype = 'invoice' WHERE fk_facture IS NOT NULL AND fk_element 
IS NULL AND elementtype IS NULL
Code retour dernier accès en base en erreur: DB_ERROR_NOSUCHFIELD
Information sur le dernier accès en base en erreur: Unknown column 'fk_element' 
in 'where clause'

Déjà migré
Déjà migré
Déjà migré

Migration terminée




diff --git a/htdocs/install/mysql/migration/2.9.0-3.0.0.sql b/htdocs/install/mysql/migration/2.9.0-3.0.0.sql
index eef7b30..9ddbad2 100644
--- a/htdocs/install/mysql/migration/2.9.0-3.0.0.sql
+++ b/htdocs/install/mysql/migration/2.9.0-3.0.0.sql
@@ -62,7 +62,7 @@ ALTER TABLE llx_commandedet ADD COLUMN fk_parent_line integer NULL AFTER fk_comm
 ALTER TABLE llx_facturedet ADD COLUMN fk_parent_line integer NULL AFTER fk_facture;
 ALTER TABLE llx_facturedet_rec ADD COLUMN fk_parent_line integer NULL AFTER fk_facture;
 
---Remove old Spanish TVA
+-- Remove old Spanish TVA
 UPDATE llx_c_tva SET taux = '18' WHERE rowid = 41;
 UPDATE llx_c_tva SET taux = '8' WHERE rowid = 42;
 DELETE FROM llx_c_tva WHERE rowid = 45;
@@ -80,7 +80,7 @@ ALTER TABLE llx_product ADD COLUMN fk_country integer after customcode;
 ALTER TABLE llx_ecm_directories ADD UNIQUE INDEX idx_ecm_directories (label, fk_parent, entity);
 ALTER TABLE llx_ecm_documents ADD UNIQUE INDEX idx_ecm_documents (fullpath_dol);
 
---Add modules facture fournisseur
+-- Add modules facture fournisseur
 INSERT INTO llx_const (name, value, type, note, visible) values ('INVOICE_SUPPLIER_ADDON_PDF', 'canelle','chaine','',0);
 ALTER TABLE llx_facture_fourn ADD COLUMN model_pdf varchar(50) after note_public;
 
diff --git a/htdocs/install/mysql/migration/3.0.0-3.1.0.sql b/htdocs/install/mysql/migration/3.0.0-3.1.0.sql
index 1aaf7ed..ebe55ea 100755
--- a/htdocs/install/mysql/migration/3.0.0-3.1.0.sql
+++ b/htdocs/install/mysql/migration/3.0.0-3.1.0.sql
@@ -29,7 +29,7 @@ ALTER TABLE llx_commande_fournisseur ADD COLUMN fk_cond_reglement integer NULL D
 ALTER TABLE llx_commande_fournisseur ADD COLUMN fk_mode_reglement integer NULL DEFAULT 0 after fk_cond_reglement;
 ALTER TABLE llx_commande_fournisseur ADD COLUMN import_key varchar(14);
 
---ALTER TABLE llx_c_currencies ADD COLUMN symbole varchar(3) NOT NULL default '';
+-- ALTER TABLE llx_c_currencies ADD COLUMN symbole varchar(3) NOT NULL default '';
 
 ALTER TABLE llx_commande_fournisseur MODIFY model_pdf varchar(255);
 ALTER TABLE llx_commande MODIFY model_pdf varchar(255);
@@ -48,13 +48,13 @@ ALTER TABLE llx_societe MODIFY ape varchar(32);
 ALTER TABLE llx_societe MODIFY idprof4 varchar(32);
 
 -- Delete old constants
-DELETE FROM llx_const WHERE __DECRYPT('name')__ = 'MAIN_MENU_BARRETOP';
-DELETE FROM llx_const WHERE __DECRYPT('name')__ = 'MAIN_MENUFRONT_BARRETOP';
-DELETE FROM llx_const WHERE __DECRYPT('name')__ = 'MAIN_MENU_BARRELEFT';
-DELETE FROM llx_const WHERE __DECRYPT('name')__ = 'MAIN_MENUFRONT_BARRELEFT';
+DELETE FROM llx_const WHERE name = 'MAIN_MENU_BARRETOP';
+DELETE FROM llx_const WHERE name = 'MAIN_MENUFRONT_BARRETOP';
+DELETE FROM llx_const WHERE name = 'MAIN_MENU_BARRELEFT';
+DELETE FROM llx_const WHERE name = 'MAIN_MENUFRONT_BARRELEFT';
 
-DELETE FROM llx_const WHERE __DECRYPT('name')__ = 'MAIN_POPUP_CALENDAR' and value in ('1','eldy');
-DELETE FROM llx_const WHERE __DECRYPT('name')__ = 'MAIN_CONFIRM_AJAX';
+DELETE FROM llx_const WHERE name = 'MAIN_POPUP_CALENDAR' and value in ('1','eldy');
+DELETE FROM llx_const WHERE name = 'MAIN_CONFIRM_AJAX';
 
 ALTER TABLE llx_facture_fourn ADD COLUMN ref_ext varchar(30) AFTER entity;
 ALTER TABLE llx_commande_fournisseur ADD COLUMN ref_ext varchar(30) AFTER entity;
@@ -85,7 +85,7 @@ CREATE TABLE llx_c_availability
 ALTER TABLE llx_c_availability ADD UNIQUE INDEX uk_c_availability(code);
 
 -- Use table name input_reason to match also input_method
-DROP table llx_c_demand_reason;
+DROP table if exists llx_c_demand_reason;
 CREATE TABLE llx_c_input_reason
 (
 	rowid		integer	 	AUTO_INCREMENT PRIMARY KEY,
@@ -104,7 +104,7 @@ INSERT INTO llx_c_input_reason (rowid,code,label,active) VALUES (5, 'SRC_COMM',
 INSERT INTO llx_c_input_reason (rowid,code,label,active) VALUES (6, 'SRC_SHOP',       'Shop contact', 1);
 INSERT INTO llx_c_input_reason (rowid,code,label,active) VALUES (7, 'SRC_CAMP_EMAIL', 'EMailing campaign', 1);
 
-ALTER TABLE llx_propal CHANGE COLUMN delivery fk_availability integer NULL;
+-- ALTER TABLE llx_propal CHANGE COLUMN delivery fk_availability integer NULL;
 ALTER TABLE llx_propal ADD COLUMN fk_availability integer NULL AFTER date_livraison;
 ALTER TABLE llx_commande ADD COLUMN fk_availability integer NULL AFTER date_livraison;
 
@@ -123,7 +123,7 @@ ALTER TABLE llx_mailing_cibles ADD COLUMN tag varchar(128) NULL AFTER other;
 ALTER TABLE llx_mailing ADD COLUMN tag varchar(128) NULL AFTER email_errorsto;
 
 ALTER TABLE llx_usergroup_user DROP INDEX fk_user;
-ALTER TABLE llx_usergroup_user DROP INDEX uk_user_group_entity;
+-- ALTER TABLE llx_usergroup_user DROP INDEX uk_user_group_entity;
 ALTER TABLE llx_usergroup_user ADD COLUMN entity integer DEFAULT 1 NOT NULL AFTER rowid;
 ALTER TABLE llx_usergroup_user ADD UNIQUE INDEX uk_usergroup_user (entity,fk_user,fk_usergroup);
 -- V4.1 DELETE FROM llx_usergroup_user WHERE fk_user NOT IN (SELECT rowid from llx_user);
@@ -148,8 +148,8 @@ INSERT INTO llx_c_shipment_mode (rowid,code,libelle,description,active) VALUES (
 INSERT INTO llx_c_actioncomm (id, code, type, libelle, module, position) VALUES ( 10, 'AC_SHIP', 'system', 'Send shipping by email'	,'shipping', 11);
 
 ALTER TABLE llx_actioncomm DROP INDEX idx_actioncomm_fk_facture;
-ALTER TABLE llx_actioncomm DROP INDEX idx_actioncomm_fk_supplier_order;
-ALTER TABLE llx_actioncomm DROP INDEX idx_actioncomm_fk_supplier_invoice;
+-- ALTER TABLE llx_actioncomm DROP INDEX idx_actioncomm_fk_supplier_order;
+-- ALTER TABLE llx_actioncomm DROP INDEX idx_actioncomm_fk_supplier_invoice;
 ALTER TABLE llx_actioncomm ADD COLUMN entity integer DEFAULT 1 NOT NULL AFTER id;
 ALTER TABLE llx_actioncomm ADD COLUMN fk_element integer DEFAULT NULL AFTER note;
 ALTER TABLE llx_actioncomm ADD COLUMN elementtype varchar(16) DEFAULT NULL AFTER fk_element;
@@ -160,7 +160,7 @@ ALTER TABLE llx_c_departements MODIFY COLUMN cheflieu    varchar(50);
 
 
 -- Table c_action_trigger
-DROP table llx_c_action_trigger;
+DROP table if exists llx_c_action_trigger;
 create table llx_c_action_trigger
 (
   rowid			integer AUTO_INCREMENT PRIMARY KEY,
@@ -203,7 +203,7 @@ INSERT INTO llx_c_action_trigger (rowid,code,label,description,elementtype,rang)
 
 DROP table llx_action_def;
 
---Add Chile data (id pays=67)
+-- Add Chile data (id pays=67)
 -- Regions Chile
 INSERT INTO llx_c_regions (rowid, code_region, fk_pays, cheflieu, tncc, nom, active) VALUES (6701, 6701, 67, NULL, NULL, 'Tarapacá', 1);
 INSERT INTO llx_c_regions (rowid, code_region, fk_pays, cheflieu, tncc, nom, active) VALUES (6702, 6702, 67, NULL, NULL, 'Antofagasta', 1);
@@ -276,7 +276,7 @@ INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, nc
 INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('135', 6713, '', 0, '135', 'Melipilla', 1);
 INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('136', 6713, '', 0, '136', 'Talagante', 1);
 
---Add Mexique data (id pays=154)
+-- Add Mexique data (id pays=154)
 -- Regions Mexique
 INSERT INTO llx_c_regions (rowid, fk_pays, code_region, cheflieu, tncc, nom, active) VALUES (15401,  154, 15401, '', 0, 'Mexique', 1);
 -- Provinces Mexique
@@ -320,7 +320,7 @@ INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154,
 INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15405', 'Sociedad en comandita por acciones', 1);
 INSERT INTO llx_c_forme_juridique (fk_pays, code, libelle, active) VALUES (154, '15406', 'Sociedad cooperativa', 1);
 
---Add Colombie data (id pays=70)
+-- Add Colombie data (id pays=70)
 -- Regions Colombie 
 INSERT INTO llx_c_regions (rowid, fk_pays, code_region, cheflieu, tncc, nom, active) VALUES (7001,  70, 7001, '', 0, 'Colombie', 1);
 -- Provinces Colombie
@@ -358,7 +358,7 @@ INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, nc
 INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('CES', 7001, '', 0, 'CES', 'Cesar', 1);
 INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('MAG', 7001, '', 0, 'MAG', 'Magdalena', 1);
 
---Add Honduras data (id pays=114)
+-- Add Honduras data (id pays=114)
 -- Regions Honduras 
 INSERT INTO llx_c_regions (rowid, fk_pays, code_region, cheflieu, tncc, nom, active) VALUES (11401,  114, 11401, '', 0, 'Honduras', 1);
 -- Provinces Honduras
@@ -394,7 +394,7 @@ insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (15
 insert into llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) values (1543,154,     '10','0','VAT Frontero',1);
 
 
---Add Barbados data (id pays=46)
+-- Add Barbados data (id pays=46)
 -- Region Barbados 
 INSERT INTO llx_c_regions (rowid, fk_pays, code_region, cheflieu, tncc, nom, active) VALUES (4601,  46, 4601, 'Bridgetown', 0, 'Barbados', 1);
 -- Parish Barbados
@@ -479,7 +479,7 @@ ALTER TABLE llx_c_type_contact    ADD COLUMN module        varchar(32) NULL;
 ALTER TABLE llx_c_type_fees       ADD COLUMN module        varchar(32) NULL;
 ALTER TABLE llx_c_typent          ADD COLUMN module        varchar(32) NULL;
 
-ALTER TABLE llx_user ADD ref_ext varchar(30) AFTER entity;
+-- already done in 2.9.0-3.0.0.sql ALTER TABLE llx_user ADD ref_ext varchar(30) AFTER entity;
 ALTER TABLE llx_user ADD civilite varchar(6) AFTER pass_temp;
 ALTER TABLE llx_user ADD signature text DEFAULT NULL AFTER email;
 



Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Dolibarr-dev mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/dolibarr-dev

Répondre à