Flectra App über Terminal deinstallieren

Wenn ein Modul den Start von Flectra verhindert

Jamotion GmbH
Renzo Meister

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

        1. Wechsel zum PostgreSQL Benutzer

        2. PSQL Konsole mit Verbindung zur Datenbank öffnen

        3. Den Status des fehlerhaften Moduls auf "to remove" setzen damit das Modul beim nächsten Start von Flectra deinstalliert wird.

        4. Die PSQL Konsole verlassen

        5. 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!