diff --git a/addons/sale_margin/models/sale_order.py b/addons/sale_margin/models/sale_order.py
index 6d4aac67415560312f17408cbea8f565750628f3..69aca28583db4845b0146bbaae05f1a6e3eafdcc 100644
--- a/addons/sale_margin/models/sale_order.py
+++ b/addons/sale_margin/models/sale_order.py
@@ -2,11 +2,18 @@
 # Part of Odoo. See LICENSE file for full copyright and licensing details.
 
 from odoo import api, fields, models
+from odoo.tools.sql import column_exists, create_column
 
 
 class SaleOrderLine(models.Model):
     _inherit = "sale.order.line"
 
+    def _auto_init(self):
+        if not column_exists(self.env.cr, "sale_order_line", "margin"):
+            # By creating the column 'margin' manually we steer clear of hefty data computation.
+            create_column(self.env.cr, "sale_order_line", "margin", "NUMERIC")
+        return super()._auto_init()
+
     margin = fields.Float(compute='_product_margin', digits='Product Price', store=True)
     purchase_price = fields.Float(string='Cost', digits='Product Price')