-
-
Save dreispt/d14e424540faedb3ea88 to your computer and use it in GitHub Desktop.
""" | |
Setup: | |
Assuming Odoo 8.0 sources at ~/odoo: | |
$ cp odoo-sh.py ~/odoo | |
$ cd ~/odoo | |
$ python -i odoo-sh.py | |
Usage example: | |
>>> env = connect('my-db-name') | |
>>> Users = env['res.users'] | |
>>> Users.search() | |
>>> Users.browse(1).name | |
u'Administrator' | |
""" | |
from __future__ import print_function | |
from openerp.modules.registry import RegistryManager | |
from openerp.api import Environment | |
def connect(dbname='trunk', uid=1, context=None): | |
r = RegistryManager.get(dbname) | |
cr = r.cursor() | |
Environment.reset() | |
env = Environment(cr, uid, context or {}) | |
print('Connected to %s with user %s %s' | |
% (dbname, env.uid, env.user.name)) | |
return env | |
if __name__ == '__main__': | |
print(__doc__) |
Could you refactor is as cli subcommand ?
./odoo.py shell -d dbname
./odoo.py --addons-path=xxxx shell -d dbname
would directly work. I will merge it if done as subcommand.
example of such commands are in openerp/cli/deploy.py
@antonylesuisse It would be great to have this directly from odoo.py
. I'll give a try at that.
@lepistone I had that doubt, because odoo.py
does have a loop where it loads all the addons. I'll have a look at that too.
@dreispt
I tried keeping the module in core addons path.
I ran ./odoo.py shell -d my_db_name , on terminal, but it didn't jump to the python console and returns to normal command prompt.
I same problem hardik-empiprotechnologies i am install module shell in database down server and start with ./odoo.py shell -d my_db_name --addons-path="dir/module/shel" and noting console returns to bash
how to run shell in jupyter notebook , any idea ?
hi jeffery, late answer anyhow I was searching for same ... just add !
!./odoo/odoo-bin shell -c odoo_oca.conf --log-level=error
Creating record from this terminal cannot be seen from ui(actually not created but it return id)
Brilliant! This works for core addons, but he doesn't find models from custom modules. I think it's because the full startup injects addons-path into the python path, but we don't do that here.
Do you know a way around that?