From 7be5a42afd64193db03f142f5848dca7fa747cf1 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 23 Jan 2019 20:11:14 +0100 Subject: Fix history M2M migrations --- ishtar_common/utils_migrations.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'ishtar_common/utils_migrations.py') diff --git a/ishtar_common/utils_migrations.py b/ishtar_common/utils_migrations.py index edbeb5567..431fe5bd7 100644 --- a/ishtar_common/utils_migrations.py +++ b/ishtar_common/utils_migrations.py @@ -2,9 +2,11 @@ from __future__ import unicode_literals import datetime +import json +import os from django.core.files import File -import os +from django.db import connection def migrate_simple_image_to_m2m(base_model, image_model, rel_model, @@ -124,7 +126,6 @@ def m2m_historization_init(obj): continue values.append(value.history_compress()) hist_values[attr] = values - obj.history_m2m = hist_values for hist in obj.history.all(): hist.history_m2m = hist_values d = hist.history_date @@ -134,5 +135,11 @@ def m2m_historization_init(obj): hist.history_date = date hist.last_modified = date hist.save() - obj.skip_history_when_saving = True - obj.save() + with connection.cursor() as cursor: + # not clean... but json fields seems to be not well managed by + # cursor.execute + cursor.execute( + u"UPDATE \"" + obj.__class__._meta.db_table + u"\" SET " + u"history_m2m = '" + json.dumps(hist_values).replace(u"'", u"''") + + u"'::json WHERE id = %s", [obj.pk] + ) -- cgit v1.2.3