Wie deinstalliert man Module in Oxid 6?

Nachdem ich es nun endlich ein paar Mal geschafft hab nicht nur Oxid Updates per Composer auszuführen sondern auch Module zu installieren, muss ich mich leider fragen, wie man Module nun auch wieder deinstallieren kann. Ich habs erstmal mit Modulverzeichnis löschen probiert und werd dann im Admin auch gefragt ob das Modul von der Liste gelöscht werden soll:
“Es wurden ungültige Module erkannt. Möchten Sie alle registrierten Modulinformationen und gespeicherten Konfigurationseinstellungen löschen?”
Wenn ich das mit ‘ja’ bestätige passiert aber einfach gar nichts.

Stimmt da was nicht, oder hätte ich nur anders vorgehen müssen?

Überbleibsel alter Module entfernen:

delete from oxconfig where oxvarname in (
„aDisabledModules“,
„aLegacyModules“,
„aModuleFiles“,
„aModulePaths“,
„aModules“,
„aModuleTemplates“
);

Eingabe in phpMyAdmin oder im Backend unter Tools.

Aktuelle Module entfernen:
https://docs.oxid-esales.com/developer/en/6.2/development/modules_components_themes/module/uninstall/index.html

Link zu obigem Befehl:

vendor/bin/oe-console oe:module:uninstall-configuration <module-id>

danke, das ist wohl die Antwort, nach der ich gesucht habe - um den Befehl verwenden zu können müsste ich jetzt noch wissen, wo/wie man die Modul-ID eines Moduls finden kann?

`

`vendor/bin/oe-console oe:module:uninstall-configuration source/modules/hersteller/modulordner

hersteller und modulordner sind entsprechend anzupassen. Wenn es keinen Ordner “hersteller” gibt, also einen übergordneten Ordner, in dem sich alle Module eines Herstellers befinden, ist dieser zu entfernen.

danke, aber leider ist das immer noch nicht eindeutig genug erklärt für mich. also egal ob ich das “source/modules” davor dran lasse oder nicht, der befehl liefert mir immer nur die fehlermeldung "There is no module configuration with id "

ist die Bezeichnung ‘Modul-ID’ irgendwo definiert? müsste das nicht einfach die gleiche Bezeichnung sein die auch auch schon zum installieren des Moduls über composer gebraucht hab? Das hab ich nämlich grade auch mal nachgeschaut, sieht fast so aus, wie der Modul-Ordnername, aber andere groß-kleinschreibung; und auch damit als Modul-ID kommt nur wieder die gleiche Fehlermeldung. Und auch hier hab ich es wieder sowohl mit als auch ohne ‘source/modules/’ probiert.

Es ist der Ordner zu nennen, in der sich die metadata.php des zu aktualisierenden Moduls befindet. Den Rest macht der Composer.

hm, genau das hab ich :frowning:

Gibts vielleicht irgendwo ein Beispiel dazu, wenn die Anleitung schon so unklar ist?

Doch in der metadata.php in der Regel als Wert hinter “id”.

Am einfachsten wäre wenn schreibst welches Modul Du deinstallieren möchtest, dann die Antwort konkreter.

1 Like

Wie wäre es mit dem Wiki Eintrag Anleitung: Composer für Shopbetreiber

1 Like

Vielen Dank, endlich klappts.
Es ging mir nicht um ein Modul, sondern um alle, ich bin am ausprobieren und wollte eigentlcih nur verstehen wie man bei oxid6 module installiert und deinstalliert, und hab eben gar nix hingekriegt, egal mit welchem Modul.

Und wie man sieht ist das ja leider doch nicht so simpel und intuitiv, wie man es sich gerne wünschen würde.

Zum Ende ein Beispiel:

composer require foxido_de/pl_mailatt

vendor/bin/oe-console oe:module:install-configuration source/modules/foxido_de/pl_mailatt

metadata.php
<?php
// -------------------------------
// Mailattachment // BCC Contact © 2018 FOXIDO.DE
// -------------------------------

$sMetadataVersion = '2.0';
$aModule = array(
    'id'           => 'pl_mailatt',

Eventuell folgende Lösung GitHub - aggrosoft/oxid-composer-manager: Manage oxid eShop composer modules through admin interface angucken, wenn man sich nicht mit Composer beschäftigen möchte und lieber eine GUI bevorzugt wäre es Alternative.

1 Like

Das hätte auch vorher klappen müssen. Der Modulordnername ist die ID.

hm, dann hab ich mir also nur per Zufall ein besonders schlecht gemachtes Modul zum herumprobieren ausgesucht?

Der Name über den ich installiert es hab war ein anderer als der Ordnername und die ID aus der metadata.php war nochmal anders geschrieben:

install: ecs/fancybox2oxid
ordnername: ecs/Fancybox2Oxid
ID laut metadata.php: ecs_fancybox2oxid

Korrigiere. Der Composer lässt hier mehr Spielraum, sodass ein Verweis möglich ist. Wir lassen das immer übereinstimmend stehen. Ist einfacher.

Die Module, die im Composermanager auftauchen kann ich darüber scheinbar löschen, auch wenn es manchmal mehrere Versuche erfordert, immer minutenlange dauert und am ende nur “object object” als Rückmeldung gibt.
Aber auf anderem Wege hab ich noch kein einziges Modul deinstalliert bekommen und somit hab ich diverse Module, die im Composermanager nicht aufgeführt werden und somit scheinbar gar nicht mehr löschbar für mich sind,

Ich hab schon alles aus diesem Thread hier ausprobiert und muss mich wohl geschlagen geben, oder kann man jemand erklären, wann ein Modul in der Liste unter Admin > Erweiterungen > Module auftaucht oder nicht?
Das müsste doch auch irgendwo in der Datenbank manuell bearbeitbar sein, oder nicht?

Und vielleicht noch wichtiger, was hat es mit der Abfrage “Es wurden ungültige Module erkannt. Möchten Sie alle registrierten Modulinformationen und gespeicherten Konfigurationseinstellungen löschen?” auf sich?
Die Option ‘Ja’ sollte hier ja genau das machen was ich möchte, Module, die ich bereits gelöscht habe auch nicht mehr auflisten. Aber hier passiert einfach einfach gar nichts. Die Frage erscheint, egal bei welchem und wievielen gelöschten Moduldateien immer und immer wieder.

EDIT: der hier bereits genannte SQL-Befehl

delete from oxconfig where oxvarname in („aDisabledModules“,„aLegacyModules“,„aModuleFiles“, „aModulePaths“,„aModules“,„aModuleTemplates“);

sorgt übrigens nur dafür dass der Shop gar nicht mehr läuft.

Ab OXID eShop Community Edition Serie 6.2

1.) Die Module die im Admin siehst befinden sich die Moduleinstellungen/Modulkonfiguration in der Datenbank

2.) Um ein Modul aus der Datenbank zu löschen sind folgende Schritte notwendig

2a.) Modul im Admin deaktivieren

2b.) Modulkonfiguration Einträge aus der Datei /var/configuration/shops/1.yaml über den Konsolenbefehl

vendor/bin/oe-console oe:module:uninstall-configuration <module-id>

entfernen

2c.) Modulkonfiguration neu in Datenbank laden mit Konsolenbefehl

vendor/bin/oe-console oe:module:apply-configuration

3.) Moduldateien aus source/modules Verzeichnis entfernen

4.) Tmp Verzeichnis leeren nicht vergessen

1 Like

Das ist eine rigorose Methode, erstmal alles zu löschen und “altes Zeugs” loszuwerden. Danach musst natürlich TMP leeren und die eben noch aktiven Module wieder einschalten.

https://bugs.oxid-esales.com/view.php?id=6037

ah, endlcih erfahre ich mal, wo das wirklich gespeichert wird, jetzt müsst ich nur noch verstehen was hier passiert, denn weder

vendor/bin/oe-console oe:module:uninstall-configuration xxxxx

noch

vendor/bin/oe-console oe:module:apply-configuration

scheinen irgendwas an dieser datei zu verändern, aber manuell editieren funktioniert immerhin, auch wenn das ja genau das gegenteil ist von dem wofür diese configurationsverwaltung da sein sollte :smiley: