6

I don't have access to the backend and need to disable all the modules. How can I disable them via database?

3 Answers 3

3

This really depends.

In cases you just want to hide your module output it is enough to go to Magento admin System \ Advanced \ Advanced and disable your module output there.

In case you want to disable your module completely you will need a file access but even then you may get some surprises. Some modules are almost impossible to disable completely :-)

First and easiest way is to set <active>false</active> in your module bootstrap file.

However this will not eliminate your classes if some other modules are extending them. Deleting module files is also not an option as you will still need to remove extension declarations to avoid fatal errors. Also as Petar mention in comments if your extension is implementing custom backen model or something like this and there's also some entities relying on this model deleting extension files will again result in fatal error(s).

Additionally deleting files is not removing any database entries extension created during execution of install/update scripts and/or extension's functionality.

6
  • ok, so I need to disable them via xml files? Commented Jun 24, 2013 at 14:45
  • Not only. To be 100% sure the module is disabled you also have to remove its files from app/code/community or app/code/local depending on a code pool. Commented Jun 24, 2013 at 15:00
  • Some times it is better to disable from modules/{config}.xml files and see if this will do what you want. If you remove all code files and you happen to have an attribute in DB which uses as backend any of the removed classes, you may have broken parts of the site. Commented Jun 24, 2013 at 15:14
  • Agree with @PetarDzhambazov but on the other hand you can have classes of other extensions which are extending your extension's classes so w/o removing files the functionality will still be triggered. Commented Jun 24, 2013 at 15:17
  • get it. the problem is that I'm trying to upgrade magento from 1.4.0.1 to 1.7 and I'm having problems because of the modules. will try and see... Commented Jun 24, 2013 at 15:25
10

By using this Query you can find all the Modules:-

SELECT *  FROM `core_config_data` WHERE `path` LIKE '%modules_disable_output%`;

For Enable the Modules just run this Query:-

UPDATE `core_config_data` SET `value` = 0 WHERE `core_config_data`.`path` LIKE '%modules_disable_output%';

For Disable the Modules just run this Query:-

UPDATE `core_config_data` SET `value` = 1 WHERE `core_config_data`.`path` LIKE '%modules_disable_output%';

NOTE:- Where path is your module path in core_config_data.

7

This is not possible. You can disable module output - which is not the same as disabling the module entirely. Observers still fire, etc. The only thing suppressed is block output.

For a bit of an explanation from @fooman, see the video below.

http://www.youtube.com/watch?v=E7zngz5Pf1k

Fooman explains in the video that the module itself is still enabled, but the output on the frontend is suppressed.

enter image description here

If block output disabling is all you need, the relavent code would be in core_config_data and can be accessed via the following method:

Mage::getStoreConfig('advanced/modules_disable_output/Namespace_Module');

enter image description here

So flip this value to 1 (true) to disable.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.