(可能)autovacumn 的数据丢失
data loss with (possibly) autovacumn
我已经在 Odoo 11 中自定义了 crm
模块。
我添加了一些产品线来计算计划收入,而无需创建报价单。
我遇到的问题是一段时间后 - 大约 1 天。数据从 Odoo 的字段中清除。
我使用 store=True
正确设置了字段(我认为!!)
另一个嫌疑人是autovacumn
postgresql 数据库清除数据的预定操作。
我如何确保数据保留,并且如果数据可用 vacumming
,请阻止它被垃圾收集?
crm_lead.py
x_order_line = fields.One2many(
"crm.lead.calc.revenue.line",
"x_order_id",
string="Product Lines",
copy=False,
auto_join=True,
store=True,
)
x_product_id = fields.Many2one(
"product.product",
related="x_order_line.x_product_id",
string="Product",
copy=True,
)
calc_revenue_line.py
class CalcRevenue(models.TransientModel):
"""
This wizard will Calculate the Planned Revenue of the current record in CRM.lead
"""
_name = "crm.lead.calc.revenue.line"
_description = "Line Model for Calculating products"
x_product_id = fields.Many2one(
"product.product",
string="Product",
domain=[("categ_id", "in", ["Accessories", "Final products", "Subscriptions"])],
change_default=True,
ondelete="restrict",
required=True,
store=True,
)
x_product_uom_qty = fields.Float(
string="Quantity",
digits=dp.get_precision("Product Unit of Measure"),
required=True,
default=1.0,
store=True,
)
x_order_id = fields.Many2one(
"crm.lead",
string="Product Lines",
required=True,
ondelete="cascade",
index=True,
copy=False,
store=True,
)
x_price_unit = fields.Float(
"Unit Price", digits=dp.get_precision("Product Price"), default=1.0, store=True
)
我通过更改
解决了这个问题
class CalcRevenue(models.TransientModel):
至:
class CalcRevenue(models.Model):
我认为 TransientModel
是数据未保存的原因。
我已经在 Odoo 11 中自定义了 crm
模块。
我添加了一些产品线来计算计划收入,而无需创建报价单。
我遇到的问题是一段时间后 - 大约 1 天。数据从 Odoo 的字段中清除。
我使用 store=True
正确设置了字段(我认为!!)
另一个嫌疑人是autovacumn
postgresql 数据库清除数据的预定操作。
我如何确保数据保留,并且如果数据可用 vacumming
,请阻止它被垃圾收集?
crm_lead.py
x_order_line = fields.One2many(
"crm.lead.calc.revenue.line",
"x_order_id",
string="Product Lines",
copy=False,
auto_join=True,
store=True,
)
x_product_id = fields.Many2one(
"product.product",
related="x_order_line.x_product_id",
string="Product",
copy=True,
)
calc_revenue_line.py
class CalcRevenue(models.TransientModel):
"""
This wizard will Calculate the Planned Revenue of the current record in CRM.lead
"""
_name = "crm.lead.calc.revenue.line"
_description = "Line Model for Calculating products"
x_product_id = fields.Many2one(
"product.product",
string="Product",
domain=[("categ_id", "in", ["Accessories", "Final products", "Subscriptions"])],
change_default=True,
ondelete="restrict",
required=True,
store=True,
)
x_product_uom_qty = fields.Float(
string="Quantity",
digits=dp.get_precision("Product Unit of Measure"),
required=True,
default=1.0,
store=True,
)
x_order_id = fields.Many2one(
"crm.lead",
string="Product Lines",
required=True,
ondelete="cascade",
index=True,
copy=False,
store=True,
)
x_price_unit = fields.Float(
"Unit Price", digits=dp.get_precision("Product Price"), default=1.0, store=True
)
我通过更改
解决了这个问题class CalcRevenue(models.TransientModel):
至:
class CalcRevenue(models.Model):
我认为 TransientModel
是数据未保存的原因。