Modul lässt sich nicht deaktivieren

Hallo,

beim Deaktivieren eines Moduls (nicht das su_shopcontrol) zeigt sich darüber im Backend die folgende Fehlermeldung und das Modul bleibt aktiv:

#0 /www/htdocs/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php(166): Doctrine\DBAL\Driver\AbstractMySQLDriver->convertException(‘An exception oc…’, Object(Doctrine\DBAL\Driver\PDOException))
#1 /www/htdocs/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php(146): Doctrine\DBAL\DBALException::wrapException(Object(Doctrine\DBAL\Driver\PDOMySql\Driver), Object(Doctrine\DBAL\Driver\PDOException), ‘An exception oc…’)
#2 /www/htdocs/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1069): Doctrine\DBAL\DBALException::driverExceptionDuringQuery(Object(Doctrine\DBAL\Driver\PDOMySql\Driver), Object(Doctrine\DBAL\Driver\PDOException), ‘INSERT INTO oxc…’, Array)
#3 /www/htdocs/vendor/doctrine/dbal/lib/Doctrine/DBAL/Query/QueryBuilder.php(218): Doctrine\DBAL\Connection->executeUpdate(‘INSERT INTO oxc…’, Array, Array)
#4 /www/htdocs/vendor/OXID-esales/oxideshop-ce/source/Internal/Framework/Config/Dao/ShopConfigurationSettingDao.php(98): Doctrine\DBAL\Query\QueryBuilder->execute()
#5 /www/htdocs/vendor/OXID-esales/oxideshop-ce/source/Internal/Framework/Module/Setup/Handler/ModulePathHandler.php(56): OxidEsales\EshopCommunity\Internal\Framework\Config\Dao\ShopConfigurationSettingDao->save(Object(OxidEsales\EshopCommunity\Internal\Framework\Config\DataObject\ShopConfigurationSetting))
#6 /www/htdocs/vendor/OXID-esales/oxideshop-ce/source/Internal/Framework/Module/Setup/Service/ModuleConfigurationHandlingService.php(48): OxidEsales\EshopCommunity\Internal\Framework\Module\Setup\Handler\ModulePathHandler->handleOnModuleDeactivation(Object(OxidEsales\EshopCommunity\Internal\Framework\Module\Configuration\DataObject\ModuleConfiguration), 1)
#7 /www/htdocs/vendor/OXID-esales/oxideshop-ce/source/Internal/Framework/Module/Setup/Service/ModuleActivationService.php(131): OxidEsales\EshopCommunity\Internal\Framework\Module\Setup\Service\ModuleConfigurationHandlingService->handleOnDeactivation(Object(OxidEsales\EshopCommunity\Internal\Framework\Module\Configuration\DataObject\ModuleConfiguration), 1)
#8 /www/htdocs/vendor/OXID-esales/oxideshop-ce/source/Internal/Framework/Module/Setup/Bridge/ModuleActivationBridge.php(62): OxidEsales\EshopCommunity\Internal\Framework\Module\Setup\Service\ModuleActivationService->deactivate(‘clean_order_sel…’, 1)
#9 /www/htdocs/vendor/OXID-esales/oxideshop-ce/source/Application/Controller/Admin/ModuleMain.php(96): OxidEsales\EshopCommunity\Internal\Framework\Module\Setup\Bridge\ModuleActivationBridge->deactivate(‘clean_order_sel…’, 1)
#10 /www/htdocs/vendor/OXID-esales/oxideshop-ce/source/Core/Controller/BaseController.php(534): OxidEsales\EshopCommunity\Application\Controller\Admin\ModuleMain->deactivateModule()
#11 /www/htdocs/vendor/OXID-esales/oxideshop-ce/source/Core/ShopControl.php(345): OxidEsales\EshopCommunity\Core\Controller\BaseController->executeFunction(‘deactivateModul…’)
#12 /www/htdocs/vendor/OXID-esales/oxideshop-ce/source/Core/ShopControl.php(279): OxidEsales\EshopCommunity\Core\ShopControl->executeAction(Object(OxidEsales\Eshop\Application\Controller\Admin\ModuleMain), ‘deactivateModul…’)
#13 /www/htdocs/vendor/OXID-esales/oxideshop-ce/source/Core/ShopControl.php(142): OxidEsales\EshopCommunity\Core\ShopControl->_process(‘OxidEsales\Esho…’, ‘deactivateModul…’, NULL, NULL)
#14 /www/htdocs/source/modules/assofort/su_shopcontrol.php(18): OxidEsales\EshopCommunity\Core\ShopControl->start()
#15 /www/htdocs/vendor/OXID-esales/oxideshop-ce/source/Core/OXID.php(27): su_shopcontrol->start()
#16 /www/htdocs/source/index.php(16): OxidEsales\EshopCommunity\Core\OXID::run()
#17 /www/htdocs/source/admin/index.php(12): require_once(‘/www/htdocs/w01…’)
#18 {main}

Kann mir jemand einen Tipp geben, woran das liegen kann?
Danke
Thoni

Schon in die Logs geschaut? Es sollte in einem der Fehler Logs eine sinnvollere Fehlermeldung geben, die mit “An exception occured” anfängt.
Es wäre auch deutlich zielführernder zu sagen, welches Modul man deaktiviert, anstatt welches Modul man nicht deaktiviert. Man ruft auch keine Elektriker nach Hause und sagt “Eine meiner Steckdosen funktioniert nicht, es ist aber nicht die im Badezimmer.”

1 Like

Es ist eine Eigenentwicklung, was nun aber egal ist, weil sich kein Modul deaktivieren lässt, wie ich inzwischen gemerkt habe.
Das eine Modul nannte ich nur, weil es aufgeführt wurde.

Log:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ‘051b2ed2ba3fe0a6ee8ed26779559915’ for key ‘PRIMARY’ at /www/htdocs/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php:55, Doctrine\DBAL\Driver\PDOException(code: 23000): SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ‘051b2ed2ba3fe0a6ee8ed26779559915’ for key ‘PRIMARY’ at /www/htdocs/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:123, PDOException(code: 23000): SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ‘051b2ed2ba3fe0a6ee8ed26779559915’ for key ‘PRIMARY’ at /www/htdocs/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:121)\n[stacktrace]\n#0 /www/htdocs/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php(166): Doctrine\DBAL\Driver\AbstractMySQLDriver->convertException(‘An exception oc…’, Object(Doctrine\DBAL\Driver\PDOException))\n#1 /www/htdocs/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php(146): Doctrine\DBAL\DBALException::wrapException(Object(Doctrine\DBAL\Driver\PDOMySql\Driver), Object(Doctrine\DBAL\Driver\PDOException), ‘An exception oc…’)\n#2 /www/htdocs/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1069): Doctrine\DBAL\DBALException::driverExceptionDuringQuery(Object(Doctrine\DBAL\Driver\PDOMySql\Driver), Object(Doctrine\DBAL\Driver\PDOException), ‘INSERT INTO oxc…’, Array)\n#3 /www/htdocs/vendor/doctrine/dbal/lib/Doctrine/DBAL/Query/QueryBuilder.php(218): Doctrine\DBAL\Connection->executeUpdate(‘INSERT INTO oxc…’, Array, Array)\n#4 /www/htdocs/vendor/OXID-esales/oxideshop-ce/source/Internal/Framework/Config/Dao/ShopConfigurationSettingDao.php(98): Doctrine\DBAL\Query\QueryBuilder->execute()\n#5 /www/htdocs/vendor/OXID-esales/oxideshop-ce/source/Internal/Framework/Module/Setup/Handler/ModulePathHandler.php(56): OxidEsales\EshopCommunity\Internal\Framework\Config\Dao\ShopConfigurationSettingDao->save(Object(OxidEsales\EshopCommunity\Internal\Framework\Config\DataObject\ShopConfigurationSetting))\n#6 /www/htdocs/vendor/OXID-esales/oxideshop-ce/source/Internal/Framework/Module/Setup/Service/ModuleConfigurationHandlingService.php(48): OxidEsales\EshopCommunity\Internal\Framework\Module\Setup\Handler\ModulePathHandler->handleOnModuleDeactivation(Object(OxidEsales\EshopCommunity\Internal\Framework\Module\Configuration\DataObject\ModuleConfiguration), 1)\n#7 /www/htdocs/vendor/OXID-esales/oxideshop-ce/source/Internal/Framework/Module/Setup/Service/ModuleActivationService.php(131): OxidEsales\EshopCommunity\Internal\Framework\Module\Setup\Service\ModuleConfigurationHandlingService->handleOnDeactivation(Object(OxidEsales\EshopCommunity\Internal\Framework\Module\Configuration\DataObject\ModuleConfiguration), 1)\n#8 /www/htdocs/vendor/OXID-esales/oxideshop-ce/source/Internal/Framework/Module/Setup/Bridge/ModuleActivationBridge.php(62): OxidEsales\EshopCommunity\Internal\Framework\Module\Setup\Service\ModuleActivationService->deactivate(‘clean_order_sel…’, 1)\n#9 /www/htdocs/vendor/OXID-esales/oxideshop-ce/source/Application/Controller/Admin/ModuleMain.php(96): OxidEsales\EshopCommunity\Internal\Framework\Module\Setup\Bridge\ModuleActivationBridge->deactivate(‘clean_order_sel…’, 1)\n#10 /www/htdocs/vendor/OXID-esales/oxideshop-ce/source/Core/Controller/BaseController.php(534): OxidEsales\EshopCommunity\Application\Controller\Admin\ModuleMain->deactivateModule()\n#11 /www/htdocs/vendor/OXID-esales/oxideshop-ce/source/Core/ShopControl.php(345): OxidEsales\EshopCommunity\Core\Controller\BaseController->executeFunction(‘deactivateModul…’)\n#12 /www/htdocs/vendor/OXID-esales/oxideshop-ce/source/Core/ShopControl.php(279): OxidEsales\EshopCommunity\Core\ShopControl->executeAction(Object(OxidEsales\Eshop\Application\Controller\Admin\ModuleMain), ‘deactivateModul…’)\n#13 /www/htdocs/vendor/OXID-esales/oxideshop-ce/source/Core/ShopControl.php(142): OxidEsales\EshopCommunity\Core\ShopControl->_process(‘OxidEsales\\Esho…’, ‘deactivateModul…’, NULL, NULL)\n#14 /www/htdocs/source/modules/assofort/su_shopcontrol.php(18): OxidEsales\EshopCommunity\Core\ShopControl->start()\n#15 /www/htdocs/vendor/OXID-esales/oxideshop-ce/source/Core/OXID.php(27): su_shopcontrol->start()\n#16 /www/htdocs/source/index.php(16): OxidEsales\EshopCommunity\Core\OXID::run()\n#17 /www/htdocs/source/admin/index.php(12): require_once(‘/www/htdocs/w01…’)\n#18 {main}\n"] []

051b2ed2ba3fe0a6ee8ed26779559915 ist in der Datenbank nur einmal vorhanden, und zwar für die aModulePaths.

Die Fehlermeldung besagt auch, dass nochmal versucht wird den bereits existierenden Eintrag in die Datenbanktabelle zuschreiben.

wir müssten mal herausfinden, warum diese Konfiguration mit einem “INSERT INTO” in die Datenbank geschrieben werden soll.

Ändert dein Modul zufällig beim onDeactivate oder onActivate event die aModulePaths Zeile in der DB?

Nein, das mache ich nicht.
Das sollte aber auch egal sein, meine ich, weil sich, wie ich geschrieben hatte, kein Modul deaktivieren lässt.

Übrigens ist es ein OXID eShop CE 6.2.0_

das ist der einzige hinweis den man aus deiner fehlermeldung entnehmen kann.

klammer doch mal den eintrag ondeactivate in der Metadata.php aus in diesem modul

Dort steht keine drin.
Es lassen sich alle Module nicht mehr deaktivieren.

YAMLs fehlerhaft ?
vendor/bin/oe-console oe:module:apply-configuration

Ich habe es gefunden:

Für ein anderes Problem wollte ich im QueryBuilder in der execute() die UPDATEs mitprotokollieren.
Das habe ich wieder raus genommen und schon klappt es:

$handle = fopen (“updatetest.txt”, “w”);

$mxText = date(“Y-m-d H:i:s”).“\n”;
$myText .= $this->connection->executeUpdate($this->getSQL(), $this->params, $this->paramTypes).“\n”;
$myfunctions = debug_backtrace($options = DEBUG_BACKTRACE_IGNORE_ARGS,$limit = 5);
for($i = 0; $i < count($myfunctions); $i++) {
$myText .= $myfunctions[$i].“\n”;
}
fwrite ($handle, $myText);
fclose ($handle);

Sorry für die Anfrage

1 Like