Odoo ORM 对比 SQL

Odoo ORM vs SQL

我们在通过直接 SQL 查询访问 ORM 创建的记录时遇到问题,因为它似乎没有在数据库中找到这些创建的记录。

我的问题是 Odoo ORM 多久提交一次对 Postgres 数据库的更改?

这是 Odoo 14 中原始 SQL 查询的示例:

self.env.cr.execute("""
    UPDATE res_users SET active = 'False' WHERE id = 121;
""")

self.env.cr.commit()

确保将更改提交到数据库中。

我在 Odoo 论坛 上搜索并找到了一个答案:

Odoo 通过调用 cr.commit().

自动提交您在事务结束时所做的更改

虽然您可以调用:cr.commit()但不建议您这样做,除非您明确创建了自己的数据库游标!而您需要这样做的情况非常特殊!并且您需要处理错误情况和适当的回滚,以及在完成后适当地关闭游标。

Never commit the transaction