Add pre_init_hook to add computed column

Add partner_bank_id column to avoid MemoryError on an existing Odoo
instance with lots of data.

partner_bank_id on account.move.line requires payment_order_ok to be True
which it won't be as it's newly introduced - again nothing to compute.
(see AccountMoveLine._compute_partner_bank_id() in models/account_move_line.py)
This commit is contained in:
Danny W. Adair
2023-02-23 12:51:39 +13:00
committed by Pedro M. Baeza
parent 610cd5e4f7
commit 60a7abac56
3 changed files with 19 additions and 1 deletions

View File

@@ -1,3 +1,4 @@
from .hooks import pre_init_hook
from . import models
from . import report
from . import wizard

View File

@@ -9,7 +9,7 @@
{
"name": "Account Payment Order",
"version": "15.0.1.1.1",
"version": "15.0.1.1.2",
"license": "AGPL-3",
"author": "ACSONE SA/NV, "
"Therp BV, "
@@ -40,4 +40,5 @@
],
"demo": ["demo/payment_demo.xml"],
"installable": True,
"pre_init_hook": "pre_init_hook",
}

View File

@@ -0,0 +1,16 @@
from odoo.tools import sql
def pre_init_hook(cr):
"""Prepare new partner_bank_id computed field.
Add column to avoid MemoryError on an existing Odoo instance
with lots of data.
partner_bank_id on account.move.line requires payment_order_ok to be True
which it won't be as it's newly introduced - nothing to compute.
(see AccountMoveLine._compute_partner_bank_id() in models/account_move_line.py
and AccountMove._compute_payment_order_ok() in models/account_move.py)
"""
if not sql.column_exists(cr, "account_move_line", "partner_bank_id"):
sql.create_column(cr, "account_move_line", "partner_bank_id", "int4")