Es sollte nicht, aber es passiert. Durch die Installation einer 3rd Party App stürzt Flectra ab und das Backend ist über den Browser nicht mehr erreichbar. Da hilft nur noch ein direkter Eingriff auf der Datenbank. Mit den folgenden Schritten wird das Modul wieder deinstalliert und das System ist danach wieder verfügbar.
Schritt 1
Verbindung zur Datenbank über Terminal oder Software herstellen
Schritt 2
In der Tabelle ir_module_module den Status "to remove" setzen
Schritt 3
Flectra oder Odoo neu starten - das Modul wird nicht mehr geladen
Schritt 4
Im Flectra anmelden und die App deinstallieren.
Sehen wir uns das Vorgehen noch etwas genauer an
Um auf die Datenbank zuzugreifen gibt es mehrere Möglichkeiten. Entweder nutzt man das Terminal oder Verwendet ein Programm zur Verwaltung der Datenbank. Mit PostgreSQL wird kostenlos das Programm pgAdmin mit ausgeliefert. Dieses Tool reicht für die nötige Anpassung locker aus. Trotzdem setzen wir auf eine wesentlich komfortablere Lösung namens DataGrip. Mit beiden Tools kann einfach eine Verbindung zur Datenbank geöffnet werden und der entsprechende Eintrag in der Tabelle ir_module_module gesucht und geändert werden.
Wenn der Server sich in der Cloud befindet und der externe Zugriff auf die DB nicht möglich ist, so kann die Änderung auch direkt über das Terminal gemacht werden. Hierzu müssen folgende Befehle abgesetzt werden:
1# sudo su - postgres
2# psql <dbname>
3# update ir_module_module set state='to remove' where name='<module name>' and state='installed';
4# \q
5# exit
Wechsel zum PostgreSQL Benutzer
PSQL Konsole mit Verbindung zur Datenbank öffnen
Den Status des fehlerhaften Moduls auf "to remove" setzen damit das Modul beim nächsten Start von Flectra deinstalliert wird.
Die PSQL Konsole verlassen
Vom PostgreSQL Benutzer abmelden
Wenn Flectra direkt als Service installiert ist, kann mit folgendem Befehl Flectra neu gestartet werden:
sudo service flectra restart
Wenn Flectra mittels Docker ausgeführt wird, muss der Container mit folgendem Befehl neu gestartet werden:
docker restart <container name>
Beim Neustart prüft Flectra die Modul Stati und ignoriert das zu deinstallierende Modul. Nun kann man sich wieder am Backend anmelden um dann die App über die Oberfläche zu deinstallieren. Hierzu muss zuerst "Deinstallation abbrechen" und danach auf "Deinstallieren" geklickt werden.
Jetzt ist Flectra wieder problemlos nutzbar und der "Lapsus" wurde bereinigt. Gut gemacht!
Flectra App über Terminal deinstallieren
Wenn ein Modul den Start von Flectra verhindert
Bugfix SQL Systemtechnik