Bonjour à tous,
Ma fille utilise Dolibarr v. 3.3.1 installé en 2013 pour sa facturation. Elle est maintenant sous Windows 10.
Sur conseil d’une amie elle vient d’acheter et d’installer Avast.
Elle n’a plus accès à Dolibarr installé en local sur son PC.
Je suppose que c’est le serveur Apache qui est bloqué, mais je pense que c’est peut être le moment de mettre à jour Dolibarr.
Elle a essayé la dernière version de DoliWamp qui ne peut pas gérer MySQL 5.0.45.
Existe-t-il un chemin recommandé par étapes pour faire une mise à jour ?
Aussi, elle ne peut pas faire une sauvegarde donc peut-on juste copier le dossier C:\dolibarr avant de commencer ?
Merci pour votre aide.
Chris
Bonjour @cerdal
Prenons les choses dans l’ordre :
oui surement : donc paramétrer correctement avast ou le désinstaller, le temps de retrouver un accès à dolibarr et faire au moins une sauvegarde (et stocker cette sauvegarde ailleurs que sur ce même PC)
aie aie aie : sur le même PC ? ça a pu écraser tout ou partie de ce qui existait avant (dépendant de ce qu’elle a fait) mais pour la suite: mettons que rien n’a été perdu.
non
(enfin si… mais vraiment très compliqué)
oui, le sujet a été abordé plusieurs fois sur le forum.
En gros : il faut considérer que la « mise à jour » ne se fait pas avec l’installateur doliwamp, mais est considérer comme une vrai migration:
- sauvegarde de la bdd et des documents (dans ton cas en 3.3.1)
- suppression propre de l’ancien environnement (le 3.3.1)
- création du nouvel environnement (par exemple installer doliwamp en V13.0.2)
- suppression en bdd de toutes les tables du nouvel environnement
- restauration de la sauvegarde en bdd et des documents (en fonction de ce que contient la sauvegarde, il faudra peut être la modifer légèrement à la main, vu qu’il ne faut recréer que les tables, et pas la bdd)
- se connecter à dolibarr, qui du coup va s’appercevoir que ses programmes sont en V13 alors que la bdd est en 3.3.1
et donc se lancer dans V3 → V4 , V4->V5, etc… jusqu’en V13
Déjà, si tu fais ça, les données sont là et rien n’est perdu, bravo
Ensuite … tu imagines bien que la V13 est très différentes de la V3…
donc il y aura du paramétrage à faire.
Merci Arre pour votre réponse détaillée.
Elle a désactivé Avast mais toujours le même message.
Elle a désinstallé Avast, mais toujours impossible de connecter à Dolibarr.
J’ai utilisé TeamViewer pour zipper et récupérer son dossier c:\Dolibarr sur mon PC W10 64bit.
J’ai téléchargé Doliwamp 3.3.1 (la version qu’elle utilisait) et je vais essayer de réinstaller Doliwamp sur ma copie de son dossier Dolibarr.
Pour l’instant je suis bloqué parce que je ne connais pas les logins pour MySQL et la base de données, et elle ne s’en souvient pas…
Je vais surement revenir ici dans quelques temps !
Chris
Finalement on n’a pas besoin des logins pour réinstaller 3.3.1.
J’ai pu faire un dump, copier le dossier documents sur un NAS, et j’ai relancé version 13.0.2.
Message d’erreur à cause de MySQL trop ancien donc j’ai pris DoliWamp 5.0.0 et les mises-à-jour se passent bien.
Merci pour votre soutien moral qui m’a donné le courage de commencer le processus !
Chris
Tant mieux,
mais ne fais pas de mises à jour sans accéder au dolibarr, vérifier que tout est ok et sauvegarder (tu auras ainsi une install « propre » et une sauvegarde).
Après … tu peux faires autant de màj que tu veux et/ou restaurer ça chez ta fille et… tapes lui sur les doigts : sauvegarde externe au moins une fois par semaine (documents + bdd) + noter ses mots de pass + pas écouter de copine qui disent que c’est tropppppp biennnn d’installerrr çaaaaa sans en maitriser les conséquences
OK. Je suis arrivé à Doliwamp 11.0.0 sans problème, avec sauvegardes à v5, v8, v10 et v11.
J’ai installé à neuf Doliwamp v13.0.2 et j’essai de restaurer la base.
à chaque lancement dans une fenêtre cmd j’ai une erreur :
------------------------------------------8<-------------------------------------
C:\Dolibarr 11\dolibarr_documents\admin\backup>c:/dolibarr/bin/mariadb/mariadb10.4.10/bin/mysql dolibarr -h localhost -P 3306 -u dolibarrmysql -pchangeme < mysqldump_dolibarr_11.0.0_202103281616.sql
ERROR 1005 (HY000) at line 28: Can’t create table dolibarr
.llx_accounting_account
(errno: 150 « Foreign key constraint is incorrectly formed »)
C:\Dolibarr 11\dolibarr_documents\admin\backup>
------------------------------------------8<-------------------------------------
…et voici le script SQL. La ligne N° 28 est celle qui contient CREATE TABLE …
( N.B. J’ai rajouté 4 lignes DROP TABLE sur un conseil dans un autre fil que j’ai trouvé sur ce problème )
------------------------------------------8<-------------------------------------
– MySQL dump 10.11
– Host: localhost Database: dolibarr
– Server version 5.0.45-community-nt
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT /;
/!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS /;
/!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION /;
/!40101 SET NAMES utf8 /;
/!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE /;
/!40103 SET TIME_ZONE=’+00:00’ /;
/!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 /;
/!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 /;
/!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=‹ NO_AUTO_VALUE_ON_ZERO › /;
/!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
–
– Table structure for table llx_accounting_account
DROP TABLE IF EXISTS llx_accounting_account
;
DROP TABLE IF EXISTS llx_accounting_system
;
DROP TABLE IF EXISTS llx_accountingaccount
;
DROP TABLE IF EXISTS llx_accountingsystem
;
DROP TABLE IF EXISTS llx_accounting_account
;
CREATE TABLE llx_accounting_account
(
rowid
bigint(20) NOT NULL auto_increment,
entity
int(11) NOT NULL default ‹ 1 ›,
datec
datetime default NULL,
tms
timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
fk_pcg_version
varchar(32) NOT NULL,
pcg_type
varchar(20) NOT NULL,
pcg_subtype
varchar(20) NOT NULL,
account_number
varchar(32) NOT NULL,
account_parent
int(11) default ‹ 0 ›,
label
varchar(255) default NULL,
fk_accounting_category
int(11) default ‹ 0 ›,
fk_user_author
int(11) default NULL,
fk_user_modif
int(11) default NULL,
active
tinyint(4) NOT NULL default ‹ 1 ›,
import_key
varchar(14) default NULL,
extraparams
varchar(255) default NULL,
PRIMARY KEY (rowid
),
UNIQUE KEY uk_accounting_account
(account_number
,entity
,fk_pcg_version
),
KEY idx_accountingaccount_fk_pcg_version
(fk_pcg_version
),
KEY idx_accounting_account_account_number
(account_number
),
KEY idx_accounting_account_account_parent
(account_parent
),
CONSTRAINT fk_accounting_account_fk_pcg_version
FOREIGN KEY (fk_pcg_version
) REFERENCES llx_accounting_system
(pcg_version
)
) ENGINE=InnoDB AUTO_INCREMENT=4785 DEFAULT CHARSET=utf8;
------------------------------------------8<-------------------------------------
Je ne sais plus quoi essayer.
Toute suggestion serait la bienvenue !
Bonjour @cerdal
Voir le Wiki
Pour moi ton
FOREIGN_KEY_CHECKS=0 /;
devrait être remplacé par
SET FOREIGN_KEY_CHECKS=0;
et tu n’as pas
SET SQL_MODE=« NO_AUTO_VALUE_ON_ZERO »;
Ne pas oublier d’insérer à la fin
SET FOREIGN_KEY_CHECKS=1;
Cordialement
Eric
Merci Eric.
J’avais déjà essayé ça sans succès, puis j’ai cherché à comprendre les lignes apparemment commentées en tète et en fin de fichier sql :
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 /;
/!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 /;
/!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=‹ NO_AUTO_VALUE_ON_ZERO › */;
etc.
Il s’avère que cela indique une exécution conditionnelle, seulement si la version est >= 4.0.14 donc elles sont toutes exécutées.
J’ai enfin supprimé les lignes DROP TABLE que j’avais ajoutées et regardé le problème avec la fraicheur d’une belle matinée ensoleillée, et je me suis dit que je créais une table qui dépendait d’une autre qui n’existait pas encore.
J’ai déplacé la création de llx_accounting_system avant la creation de llx_accounting_account et tout s’est bien passé !
Merci à tous les deux pour votre aide.
Chris
Bonjour Cerdal,
merci beaucoup pour ton post qui m’as permis de réussir ma restauration après quelques heures de galère.
Comme tu le conseille j’ai déplacé llx_accounting_system avant llx_accounting_account et ensuite tout c’est bien passé.
Merci encore.
Xavier