Pré-requis
Pour le bon déroulement de la migration Odoo 9 vers Odoo 10, nous supposons que vous avez :
- La dernière version de Docker installée sur votre ordinateur
- Un container PostgreSQL en version 9.6. Nous l’appellerons db_9-6.
- Un container Odoo 9.x connecté à db_9.6. Nous l’appellerons odoo_9.
- Une base de données installée sur db_9.6. Nous l’appellerons nuxly.
Comme pour la migration d’Odoo 8 à 9, celle-ci a été réalisée sous Debian Stretch. Normalement, Odoo 9 fonctionne sous la version Jessie de Debian, mais le script de migration d’OpenUpgrade requiert d’avoir PostgreSQL 9.6. N’ayant pas cette version de PostgreSQL sous Jessie, il a fallu monter la version de Debian. En effet, Jessie prend en compte que jusqu’à la version 9.4 de PostgreSQL. Nous vous expliquons le processus de mise à jour et d’installation des divers outils nécessaires pour la migration.
Cette migration se passe “dans le meilleur des mondes” et suppose qu’aucune erreur ne subvienne. Cependant, il est possible que des erreurs se produisent au cours de votre migration. Nous sommes potentiellement tombés dessus, les résolutions sont référencées ultérieurement.
Mise en place de l’environnement de travail
Avec la mise en place du container odoo_9, nous récupérons un Odoo fonctionnant sous Debian Jessie et avec une version 9.4 de PostgreSQL. Pour le bon déroulement de la migration, assurez-vous d’être sous la version Debian Stretch à l’aide de cette commande :
root@odoo_8:/# cat /etc/os-release
Si la commande retourne le résultat ci-dessous vous pouvez passer directement à la partie migration. Dans le cas contraire veuillez vous référer à la mise en place de l’environnement de travail traité lors de la migration Odoo 8 à 9.
Procédure de migration Odoo 9 vers Odoo 10
- La migration par OpenUpgrade requiert certaines dépendances répertoriées dans le fichier requirements.txt du projet. Afin de satisfaire l’installation de ces dépendances et d’éviter les éventuels soucis lors de l’installation, nous avons installé les dépendances suivantes avant de débuter la migration.
root@odoo_9:/# apt update
root@odoo_9:/# apt install git nano locate build-essential libpq-dev libssl-dev libffi-dev python-setuptools python-dev libjpeg62-turbo-dev zlib1g-dev libxml2-dev python-lxml golang-openldap-dev libsasl2-dev libldap2-dev libxslt-dev
- La migration des bases de données d’Odoo n’est pas fournie nativement avec la solution, c’est un service payant. C’est ainsi qu’est né le projet OpenUpgrade qui a pour but de réaliser cette migration. OpenUpgrade utilise sa propre librairie pour migrer Odoo : openupgradelib. Installez cette dernière et OpenUpgrade pour pouvoir continuer.
root@odoo_9:/# pip install openupgradelib
root@odoo_9:/# git clone -b 10.0 https://github.com/OCA/OpenUpgrade.git
- Installez tous les requirements pour le projet OpenUpgrade.
root@odoo_9:/# pip install -r /OpenUpgrade/requirements.txt
- Vous pouvez enfin lancer la migration !
root@odoo_9:/# cd OpenUpgrade/
root@odoo_9:/# ./odoo-bin --addons-path=addons -d nuxly --db_host=172.17.0.2 -r odoo -w odoo -u all --stop-after-init --data-dir=/tmp
- Une fois la migration terminée, créez un container odoo_10 et connectez ce dernier au même serveur PostgreSQL que odoo_9.
PS C:\Users\jdoe> docker run -p 8070:8069 --name odoo_10 --link db_9-6:db -t odoo:10
PS C:\Users\jdoe> docker exec -u root -it odoo_10 /bin/bash
- Voilà ! La base de données migrée sous Odoo 10 est prête à l’emploi. Si vous souhaitez continuer à migrer sous Odoo 11, vous pouvez vous référer à notre article sur le sujet.
Potentiels erreurs rencontrées lors de la migration
Les modules passés sous OCA
Certains modules que vous voudrez migrer sont gérés par OCA. Prenons l’exemple du module knowledge. Malheureusement, sa migration n’est pas prise en compte automatiquement par OpenUpgrade. La procédure suivante nous permet de contourner ce problème. Avant de lancer la migration, importez le module dans le répertoire addons d’Openupgrade et reprenez-la là où vous l’avez laissé.
root@odoo_9:/# git clone -b 10.0 https://github.com/OCA/knowledge.git
root@odoo_9:/# cp -r /knowledge/knowledge /OpenUpgrade/addons/knowledge
Après avoir créé le conteneur Odoo 10, clonez-y le répertoire git et copiez le module knowledge dans le répertoire adéquat.
root@odoo_10:/# git clone -b 10.0 https://github.com/OCA/knowledge.git
root@odoo_10:/# cp -r /knowledge /knowledge /usr/lib/python2.7/dist-packages/openerp/addons/knowledge
Il est possible que d’autres erreurs subviennent. Elles ont potentiellement été traitées lors de la migration Odoo 8 à 9.