我正在 Odoo 中的两个数据库之间进行同步。如果它在远程没有任何问题,那么它会在双方同步。但是,如果远程出现问题,则提交本地数据库更改,但远程不会。换句话说,数据库不同步。
有没有办法在本地数据库中进行更改,如果尝试同步远程数据库出现问题,请将本地数据库回滚到以前的状态。
有这个方法:
@api.one
def order_process_now(self):
servers = self._synchro_before_sale()
# Process local order
inv_id = self.action_invoice_create()
if inv_id:
inv = self.env['account.invoice'].search([('id', '=', inv_id)])
inv.signal_workflow('invoice_open')
for picking in self.picking_ids:
picking.force_assign()
picking.action_done()
# Process remote orders
self._remote_order_action('order_process_now', servers)
如您所见,它分为两部分。首先它对本地数据库进行更改,然后在远程进行更改(使用xmlrpclib
包装erppeek
器)。我怎样才能将此方法作为一个事务,所以如果执行方法出现任何问题,对数据库的任何更改都会回滚?