[IMP] fields: add a primary key for m2m tables

Remove individual m2m indexes and replace with a single mirrored
composite

This will help for logical replication strategies (postgresql BDR)

closes odoo/odoo#37963

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
This commit is contained in:
Graeme Gellatly
2019-10-04 09:44:13 +00:00
committed by Martin Trigaux
parent eaa022388d
commit ec162dd0cb
+2 -3
View File
@@ -3141,10 +3141,9 @@ class Many2many(_RelationalMulti):
query = """
CREATE TABLE "{rel}" ("{id1}" INTEGER NOT NULL,
"{id2}" INTEGER NOT NULL,
UNIQUE("{id1}","{id2}"));
PRIMARY KEY("{id1}","{id2}"));
COMMENT ON TABLE "{rel}" IS %s;
CREATE INDEX ON "{rel}" ("{id1}");
CREATE INDEX ON "{rel}" ("{id2}")
CREATE INDEX ON "{rel}" ("{id2}","{id1}");
""".format(rel=self.relation, id1=self.column1, id2=self.column2)
cr.execute(query, ['RELATION BETWEEN %s AND %s' % (model._table, comodel._table)])
_schema.debug("Create table %r: m2m relation between %r and %r", self.relation, model._table, comodel._table)