How to uninstall a module from command line
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Accounting
- Inventory
- PoS
- Project
- MRP
This question has been flagged
Run this command in your shell
python3 odoo-bin shell -d mydb --addons-path=/your/addons/path
Then run this Python script
self.env['ir.module.module'].search([('name', '=', 'crm')]).button_immediate_uninstall()
This is the Best Answer! THANKS
Thank you so much!!!
fantastic idea. Thanks
I am having troubles .. it did not work out at V14
odoo@odoo14:~$ sudo python3 /opt/odoo/odoo-bin shell -d nominatest --addons-path /opt/odoo/addons
Traceback (most recent call last):
File "/opt/odoo/odoo-bin", line 5, in <module>
__import__('pkg_resources').declare_namespace('odoo.addons')
File "/usr/local/lib/python3.9/site-packages/pkg_resources/__init__.py", line 2270, in declare_namespace
path = sys.modules[parent].__path__
KeyError: 'odoo'
working
Working on Odoo14, but doesnt forgot to restart your server if facing a new error.
well
Muhammad - you are a techno-magic man.. you found that solution.. awesome.. super awesome.. It works ..
When I try this solution, it display the following error:
Traceback (most recent call last):
File "/opt/odoo17/odoo/./odoo-bin", line 5, in <module>
import odoo
File "/opt/odoo17/odoo/odoo/__init__.py", line 125, in <module>
from . import modules
File "/opt/odoo17/odoo/odoo/modules/__init__.py", line 8, in <module>
from . import db, graph, loading, migration, module, registry, neutralize
File "/opt/odoo17/odoo/odoo/modules/graph.py", line 11, in <module>
import odoo.tools as tools
File "/opt/odoo17/odoo/odoo/tools/__init__.py", line 7, in <module>
from . import pdf
File "/opt/odoo17/odoo/odoo/tools/pdf.py", line 10, in <module>
import PIL
ModuleNotFoundError: No module named 'PIL'
Please, help :(
My stackoverflow answer:
http://stackoverflow.com/questions/21485630/how-to-uninstall-manually-openerp-module/41760541#41760541
There are two ways
1.Apply the Patch of my pull request:
https://github.com/odoo/odoo/pull/12373.patch (git apply /home/user/patch_file.patch)
2.Manually:
Go to Terminal > psql db and Execute the query like: update ir_module_module set state='to remove' where name='module_name' and state='installed';
Add update_module=True in loading.py before this line > https://github.com/odoo/odoo/blob/10.0/odoo/modules/loading.py#L378
And run the odoo.py or odoo-bin.
This will uninstall the module properly and safely.
Let me know if face any problem.
It should be possible to uninstall modules programmatically, because then you can script it for automation.
Having to manually log in to a system to perform administrative functions is error prone and tedious for repetitive tasks. In 2014, every GUI operation should have an API command that does the same thing.
I'm scripting an upgrade path for my 6.1 version database and this is making my testing more difficult than it needs to be.
I found a way to do it. Set the state column in ir_module_module for the module to 'to remove' similar to this: psql -c "UPDATE ir_module_module SET state = 'to remove' WHERE name = '';" and then perform a commandline update: openerp-server -u The update will trigger the module removal.
Gratitude. Solved it for me with Odoo 9, given I inserted this patch as step 2A in openerp/modules/loading.py, and then commented the corresponding two lines of code at the top of STEP 5. Of course, be careful everybody.... # 13.0.3.3.11-t11 jrook STEP 2A: Before step 3, setup list of modules to remove later during step 5. # since 'to remove' modules will be loaded during step 3 and will exit step 3 in 'installed' state. cr.execute("SELECT name, id FROM ir_module_module WHERE state=%s", ('to remove',)) modules_to_remove = dict(cr.fetchall())
Try for better indent this time... # 13.0.3.3.11-t11 jrook STEP 2A: Before step 3, setup list of modules to remove later during step 5. # since 'to remove' modules will be loaded during step 3 and will exit step 3 in 'installed' state. cr.execute("SELECT name, id FROM ir_module_module WHERE state=%s", ('to remove',)) modules_to_remove = dict(cr.fetchall())
Whoever did it, I do not see a reason to flag this post, so please explain or leave it as is.
Really great your solution Justin, thanks!
You can uninstall a module using the XML-RPC API.
Here is the script I use for v7 (it probably works in later version too).
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""Uninstall a module"""import xmlrpclib
import argparse
import getpassparser = argparse.ArgumentParser()
# Connection args
parser.add_argument('-d', '--database', help="Use DB as the database name",
action='store', metavar='DB', default=getpass.getuser())
parser.add_argument('-u', '--user', help="Use USER as the database user name",
action='store', metavar='USER', default='admin')
parser.add_argument('-w', '--password',
help="Use PASSWORD as the database password.",
action='store', metavar='PASSWORD', default='admin')
parser.add_argument('-s', '--url',
help="Point to the web services hosted at URL",
action='store', metavar='URL',
default='http://localhost:8069')
# Feature args
parser.add_argument('module', help="Uninstall the module MODULE",
action='store', metavar='MODULE')args = vars(parser.parse_args())
# Log in
ws_common = xmlrpclib.ServerProxy(args['url'] + '/xmlrpc/common')
uid = ws_common.login(args['database'], args['user'], args['password'])
print "Logged in to the common web service."
# Get the object proxy
ws_object = xmlrpclib.ServerProxy(args['url'] + '/xmlrpc/object')
print "Connected to the object web service."# Find the parent location by name
res_ids = ws_object.execute(
args['database'], uid, args['password'],
'ir.module.module', 'search', [('name', '=', args['module'])])
if len(res_ids) != 1:
raise Exception("Search failed")# Uninstall the module
print "Uninstalling '%s'" % args['module']
ws_object.execute(
args['database'], uid, args['password'],
'ir.module.module', "button_immediate_uninstall", res_ids)print "All done."
- python3.10 ./odoo-bin shell -c xyz.conf -d test_db
- Search module by using bellow script self.env['ir.module.module'].search([('name','=','module_name')]) then you get the result like "ir.module.module(1060,)"
- Uninstall module using button_immediate_uninstall() function
self.env['ir.module.module'].search([('name','=','module_name')]).button_immediate_uninstall()
I try in odoo14, To Uninstall Any Module From Terminal - Please Follow those steps:
sudo su postgres
psql db_name
update ir_module_module set state='uninstallable' where name='module_name' and state='installed';
That's it.....Thank you....!!!
Great, thank you for sharing this simple way. This helped me a lot.
You can now do it using odoorpc library.
I've did an example of installation here
https://github.com/maclarensg/odoo_module_install_script,
You probably can modify it to uninstall.
Very good 👍 ça fonctionne .vous m'avez permis de résoudre un gros problème, thanks thanks thanks
You can use the patch of the Pull request for your own odoo:
https://github.com/odoo/odoo/pull/12373
Odoo sees this as opening a loophole/vulnerability, so they don't want this feature to be available.
DevendraK i download https://github.com/odoo/odoo/blob/10.0/odoo/modules/loading.py and apply patch directions from https://github.com/odoo/odoo/pull/12373 (april2018) . I am using " --uninstall
module_name" but it does not uninstall the module. do I still have to use
Add update_module=True in loading.py (feb 2017 comment)???
thaks a lot
Hello,
I don't think there is a command line to do that. The only option that is supported as far as i know is the Settings -> Apps -> <the module=""> -> Uninstall. In general uninstall is not smart idea... you need to be extra careful.
Regards, Pavel Pavlov
There is no way to uninstall a module from terminal. You can check the possible options by running ./openerp-server --help
in terminal.
Hi,
I think there is no way to uninstall module from command line but temporarily you may cut module(the module you want to uninstall) from your addons path. It is not the best way but atleast it will let you know the issue.
This helped me :)
Enjoying the discussion? Don't just read, join in!
Create an account today to enjoy exclusive features and engage with our awesome community!
Sign upRelated Posts | Replies | Views | Activity | |
---|---|---|---|---|
|
1
Sep 23
|
1077 | ||
|
2
May 21
|
8651 | ||
|
1
Nov 19
|
4054 | ||
|
2
Dec 23
|
42120 | ||
|
1
Mar 16
|
4128 |