diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-01-23 20:11:14 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-01-23 20:30:07 +0100 |
commit | 7be5a42afd64193db03f142f5848dca7fa747cf1 (patch) | |
tree | 230fbdad831707a64ca2b460fbf17ccc4bbc5c6e /ishtar_common/utils_migrations.py | |
parent | eedfb7e85dc99a14b87db8f800c62224c27105a4 (diff) | |
download | Ishtar-7be5a42afd64193db03f142f5848dca7fa747cf1.tar.bz2 Ishtar-7be5a42afd64193db03f142f5848dca7fa747cf1.zip |
Fix history M2M migrations
Diffstat (limited to 'ishtar_common/utils_migrations.py')
-rw-r--r-- | ishtar_common/utils_migrations.py | 15 |
1 files changed, 11 insertions, 4 deletions
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] + ) |