diff options
| author | Graeme Gellatly <gdgellatly@gmail.com> | 2019-03-01 04:31:23 +0000 |
|---|---|---|
| committer | Martin Trigaux <mat@odoo.com> | 2019-10-04 09:44:13 +0000 |
| commit | ec162dd0cb5622ab6e56db1a63dab5f531a96f4a (patch) | |
| tree | adc22b9623cd0d16a2f36c9cab1784f512a4dae2 | |
| parent | eaa022388de83fc1e90c5d0830a8259cb8135b67 (diff) | |
[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>
| -rw-r--r-- | odoo/fields.py | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/odoo/fields.py b/odoo/fields.py index 2576fd770ac..da0de6d9a35 100644 --- a/odoo/fields.py +++ b/odoo/fields.py @@ -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) |
