我在PostgreSQL中有一个数据库,我想通过Odoo ORM使用它,然后实现RPC的东西。我不知道如何连接到另一个数据库(在PostgreSQL中)。 我用Google搜索了这个,我没有找到透视的解决方案或信息。有人可以告诉我这个吗?我应该遵循哪些步骤? 提前致谢
答案 0 :(得分:0)
您可以执行类似以下代码的操作来创建新的游标并使用通过该游标创建的环境。
from openerp.modules.registry import RegistryManager
from openerp import api
registry = RegistryManager.get('new_database')
cr = registry.cursor()
env = api.Environment(cr, self.env.uid, {})
env['res.users'].search([]) # you can run ORM methods here with the new environment
您也可以使用此方法来管理游标和环境
env.reset() # reset environment
env.cr # pointer to the cr cursor
cr.rollback() # rollback
cr.execute( # execute any SQL query
"UPDATE res_users SET password='new_password' WHERE id=1"
)
cr.commit() # commit cr changes
cr.close() # close cursor
postgres角色在两个数据库(当前数据库和其他数据库)上必须具有正确的特权。
注意:我无法使用env
变量和ORM方法来更新实际数据库,但可以将其用于读取目的
头也可以这样创建光标:
with openerp.sql_db.db_connect('postgres').cursor() as cr2:
cr2.execute('SELEC ...')