Migration dolibarr v3 -> v5

Le Par pitchum  | Catégorie : misc

Tags : howto / kb /

 

Pour que l'upgrade se passe de façon sereine, on déplace le nouveau dolibarr sur une nouvelle machine. Cela évite d'être obligé de faire un dist-upgrade sur la machine actuelle qui héberge beaucoup de services critiques. Et en plus, si l'upgrade échoue pour une raison ou une autre, on peut très facilement rétablir l'ancien dolibarr puisqu'on n'y aura pas touché.

Le paquet Debian officiel ayant 2 bugs (que ce soit la version 4 dans testing ou la v5 dans unstable) nous allons donc installer un paquet que nous aurons préalablement patché. Ce paquet patché par mes soins est déjà disponible au téléchargement ici: https://git.franciliens.net/blog/dolibarr_5.0.4+dfsg3-1.1_all.deb

Si par hasard y avait quelque chose à modifier dans ce paquet voici la procédure que j'ai suivie : Patcher le paquet Debian de dolibarr.

Attention, à partir d'ici je n'ai pas testé la procédure de façon complète. C'est du work-in-progress à corriger/compléter.

APT pinning

Nous allons configurer APT pour autoriser l'installation de paquets venant de testing et/ou sid, mais uniquement lorsque l'utilisateur le demandera explicitement. Le reste du temps APT continuera de privilégier les paquets venant de stable et stable-updates.

On déclare d'abord les mirroirs testing et sid. Pour cela créer le fichier /etc/apt/sources.list.d/sid.list :

deb http://ftp.fr.debian.org/debian/ testing main
deb http://ftp.fr.debian.org/debian/ sid main

Puis on spécifie les priorités par défaut pour APT. Pour cela créer le fichier /etc/apt/preferences.d/stability.pref :

Package: *
Pin: release o=Debian,a=stable-updates
Pin-Priority: 900

Package: *
Pin: release o=Debian,a=stable
Pin-Priority: 800

Package: *
Pin: release o=Debian,a=testing
Pin-Priority: 90

Package: *
Pin: release o=Debian,a=unstable
Pin-Priority: 80

Package: *
Pin: release o=Debian
Pin-Priority: -1

Avec cette configuration les commandes APT n'installeront jamais de paquets provenant de sid ni testing à moins que ce ne soit demandé explicitement par l'utilisateur (avec l'option -t par exemple).

Installer les pré-requis

On installe d'abord le paquet Debian officiel.

sudo apt install -t sid dolibarr

On le remplace immédiatement par le paquet patché par nos soins.

sudo dpkg -i dolibarr_5.0.4+dfsg3-1.1_all.deb

Récupérer les données de l'ancien doli

Sur l'ancienne machine, stopper dolibarr (c'est plus prudent), puis :

export workdir=$(mktemp -d dolibarr-XXXX)
pg_dump -U dolibarr dolibarr > ${workdir}/dolibarr.dump.$(date +%Y-%m-%d).sql
sudo tar czvf ${workdir}/dolibarr_data.tar.gz /srv/data/dolibarr/ /etc/dolibarr

Transférer le contenu du dossier ${workdir} vers la nouvelle machine.

Sur la nouvelle machine :

cd /tmp
sudo tar xavf dolibarr_data.tar.gz
sudo mkdir -p /srv/data/dolibarr
sudo rsync -av /tmp/srv/data/dolibarr/ /srv/data/dolibarr/
sudo rsync -av /tmp/etc/dolibarr/ /etc/dolibarr/

Customiser le fichier /etc/dolibarr/conf.php selon les besoins. Notamment les paramètres de connexion à la BDD.

Configuration nginx

Créer une configuration nginx équivalente à celle de l'ancienne machine. Désolé j'ai la flemme de documenter cette partie.

Lancer la procédure de migration

La procédure de migration se fait à travers l'interface Web.

Il suffit de se rendre sur la page d'accueil du virtualhost configuré dans nginx et d'appliquer successivement les migrations suggérées par l'installeur.

Mais à un moment, un des scripts de migration risque d'afficher des erreurs lors de l'insertion de données de départements. Ce n'est pas bien grave, il suffit alors de recharger la page, ce qui aura pour conséquence d'appliquer à nouveau le même script qui cette fois fonctionnera. Cela est dû au fait que le même script insère des données dans une première table qui sont immédiatement référencées pour l'insertion de données dans une autre table.

Ce problème est spécifique à PostgreSQL je pense car les scripts de migration sont conçus et testés pour MySQL et sont transformés à la volée lorsqu'il s'agit de PostgreSQL.

Autres articles

Patcher le paquet Debian de dolibarr

Le Thu 25 January 2018Par pitchum

 

Il y a (actuellement) 2 problèmes avec le paquet Debian pour dolibarr :

  • les scripts de migration SQL sont buggés (pour PostgreSQL uniquement)
  • un bug javascript causé par la version de jquery trop récente dans Debian (cf. https://bugs.debian.org/883418 )

Nous allons donc patcher le paquet Debian avant de …

Lire la suite …

Installer Wifi-with-me

Le Tue 07 November 2017Par admin

 

wifi-with-me est une application Web écrite en python3 avec django. Nous allons la déployer sur une Debian stretch, avec nginx et uwsgi.

J'ai fait ici des choix qui peuvent être considérés comme peu orthodoxes. Notamment, je choisis délibérément de créer un virtualenv "poreux" avec l'option --system-site-packages. Ainsi, certaines dépendances python …

Lire la suite …

Création de la VM Sauron

Le Tue 19 April 2016Par pitchum

 

Pour me faire la main avec KVM et pour enfin commencer le travail de migration des services FCN vers les nouveaux serveurs j'ai créé la VM nommée sauron.

Voici comment j'ai procédé, pour mémoire.

Un volume LVM de 20Go

sudo lvcreate -L 20g -n sauron vg-edward

Une debian jessie toute …

Lire la suite …

Migration Dolibarr

Le Tue 19 April 2016Par pitchum

 

Migration Dolibarr

L'applicatif + la BDD atterissent sur vm-styx.

sudo apt-get install postgresql-9.4

Puis taper

sudo -u postgres createuser dolibarr
sudo -u postgres createdb -O dolibarr dolibarr
sudo -u postgres psql
\password dolibarr
exit

Migration de la BDD actuelle de styx

Sur styx :

pg_dump -U dolibarr -W dolibarr > /tmp/dolibarr …
Lire la suite …

Migration OddMuse

Le Tue 19 April 2016Par pitchum

 

Comment j'ai migré le site web "vitrine" de FCN de styx (sous openBSD) vers vm-styx (sous Debian).

Le résultat final

Parce que parfois c'est plus cool d'avoir la conclusion dès le début.

Oddmuse est "installé" dans /srv/code/oddmuse.pl. Ses données sont dans /srv/data/oddmuse. L'applicatif tourne avec …

Lire la suite …