Upgrade OpenERP 7 -> Odoo 8 mit OpenUpgrade

OpenUpgrade bietet Nutzern der Community Edition einen Upgrade-Pfad für OpenERP/Odoo. Bei einfachen Installationen funktioniert das Update relativ gut - bei komplexen Installationen mit eigenen Modulen kann der Upgrade-Aufwand jedoch schnell sehr hoch werden.

Basis für die folgenden Schritte ist ein aktuelles Basis-System. Hierfür wurde Ubuntu 18.04. wie in diesem Artikel beschrieben verwendet: OpenERP 7 auf Ubuntu server 18.04.

Module prüfen:

Eigene Module, nicht gelistete Module: Prüfe ob Anpassungen notwendig sind.

Vorbereitung

 

$ systemctl stop openerp
$ systemctl disable openerp

 

Die folgenden Pakete werden für die Migration bzw. später für Odoo 8.0 benötigt:

 

$ apt install python-decorator python-psutil python-requests python-jinja2 python-passlib
$ pip install pypdf
$ wget github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb
$ dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb

 

OpenERP 7 -> Odoo 8 Upgrade durchführen

 

$ su - openerp
wget raw.githubusercontent.com/OCA/OpenUpgrade/8.0/scripts/migrate.py
python migrate.py --config=/etc/openerp/openerp-server.conf --database=[dbname] --run-migrations=8.0

 

Der Benutzer, der Pfad zur Konfigurationsdatei sowie der Datenbankname sind entsprechend anzupassen.

Abschließend das Migrations-Log auf eventuelle Fehler prüfen:

 

less /var/tmp/openupgrade/migration.log

 

Odoo 8.0 installieren

Da sich der Name des Systems ändert, passe ich bei mir auch den Benutzer an:

 

$ groupadd odoo
$ useradd --system --home-dir=/opt/odoo -m -g odoo odoo

$ mkdir -p /opt/odoo
$ cd /opt/odoo
$ git clone github.com/odoo/odoo.git --branch 8.0 --single-branch
$ mv odoo/* .
$ mv odoo/.[a-z]* .
$ rmdir odoo
$ chown -R odoo:odoo /opt/odoo/
$ vim /etc/odoo/odoo-server.conf

 

[options]
addons_path = /opt/odoo/addons,/opt/odoo-custom/addons
admin_passwd = SomeStr0ngPaßword
db_host = False
db_port = False
db_user = odoo
db_password = False
;Log settings
logfile = /var/log/odoo/odoo-server.log
log_level = error

 

Im Anschluss lege ich einen neuen systemd Service an:

 

$ vim /etc/systemd/system/odoo.service

 

[Unit]
Description=Advanced OpenSource ERP and CRM server
Requires=postgresql.service
After=postgresql.service
[Install]
Alias=odoo.service
[Service]
Type=simple
PermissionsStartOnly=true
EnvironmentFile=-/etc/conf.d/odoo-server
User=odoo
Group=odoo
SyslogIdentifier=odoo-server
PIDFile=/run/odoo/odoo-server.pid
ExecStartPre=/usr/bin/install -d -m755 -o odoo -g odoo /run/odoo
ExecStart=/opt/odoo/openerp-server -c /etc/odoo/odoo-server.conf --pid=/run/odoo/odoo-server.pid --syslog $OPENERP_ARGS
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target

 

Datenbank anpassen

 

$ sudo -u postgres createuser -s odoo
$ su - openerp -c "psql"

 

ALTER DATABASE dbname_migrated OWNER TO odoo;
ALTER DATABASE dbname_migrated RENAME TO dbname_8;
# Datenbanken auflisten und prüfen ob die obigen Befehle erfolgreich waren:
\l
\q

 

Odoo starten

 

$ systemctl start odoo

 

Im Anschluss kann Odoo über http://example.com:8069 aufgerufen werden und alles geprüft werden. Erst wenn sicher ist, dass alle Daten korrekt übernommen wurden und die Arbeitsprozesse wie gewünscht abgebildet werden können kann die neue Version in den Live-Betrieb gehen.

Quellen

Oops, an error occurred! Code: 202009212242304302287b