I don't have access to the backend and need to disable all the modules. How can I disable them via database?
3 Answers
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.
-
-
Not only. To be 100% sure the module is disabled you also have to remove its files from
app/code/community
orapp/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
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
.
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.
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');
So flip this value to 1 (true) to disable.