2016-07-23 56 views
0

我试图更新所有POS订单,但是因为我有大约50,000条记录,所以当发生任何错误或强行停止执行时。然后,执行的记录数量必须更新,但在中间停止脚本时不存储记录。 所以,请给我一些这方面的解决方案...我使用的更新记录使用python更新所有POS订单

代码...

@api.multi 
def update_all_amount(self): 
    for order in self.search([('copy_amount_total', '=', 0)]): 
     self._cr.execute("""update pos_order set copy_amount_total=%s where id = %s"""\ 
         % (str(order.amount_total), str(order.id))) 
      # print "\nupdated amount --- >", order.copy_amount_total, 
    print "success" 
+0

我们无法调试我们看不到的代码。请制作[mcve]。如果你阅读[问],这也会有所帮助。 –

+0

我不是在谈论代码,但我想要的东西,如果执行停止强制然后,使用上述代码更新记录必须保持不回滚。 –

回答

0

只要把每次提交更新后,那么就不会回滚所有这些记录这是承诺。

@api.multi 
def update_all_amount(self): 
    for order in self.search([('copy_amount_total', '=', 0)]): 
     self._cr.execute("""update pos_order set copy_amount_total=%s where id = %s"""\ 
         % (str(order.amount_total), str(order.id))) 
      # print "\nupdated amount --- >", order.copy_amount_total, 
     self._cr.commit() 
    print "success"