From 93364971fd7900e3261f36fb321f57bd5b744a07 Mon Sep 17 00:00:00 2001 From: Marcio Mazza Date: Sat, 25 May 2019 15:12:26 +0200 Subject: [PATCH] =?UTF-8?q?Usa=20campos=20crus=20do=20reversion=20p=20evit?= =?UTF-8?q?ar=20erro=20de=20desserializa=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/legacy/migracao_dados.py | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/sapl/legacy/migracao_dados.py b/sapl/legacy/migracao_dados.py index 56d738faa..b95e6a093 100644 --- a/sapl/legacy/migracao_dados.py +++ b/sapl/legacy/migracao_dados.py @@ -1,4 +1,5 @@ import datetime +import json import os import re import subprocess @@ -1211,12 +1212,9 @@ def migrar_model(model, apagar_do_legado): else: campos_chave = campos_pk_legado - def sem_sufixo_id(k): - return k[:-3] if k.endswith("_id") else k - apagados_pelo_usuario = Version.objects.get_deleted(model) apagados_pelo_usuario = [ - {sem_sufixo_id(k): v for k, v in version.field_dict.items()} + {k: v for k, v in get_campos_crus_reversion(version).items()} for version in apagados_pelo_usuario ] campos_chave_novos = {campos_velhos_p_novos[c] for c in campos_chave} @@ -1295,6 +1293,16 @@ def migrar_model(model, apagar_do_legado): exec_legado(sql_delete_legado) +def get_campos_crus_reversion(version): + """Pega campos crus de uma versao do django reversion + p evitar erros de deserializaĆ§Ć£o""" + assert version.format == "json" + [meta] = json.loads(version.serialized_data) + campos = meta["fields"] + campos["id"] = meta["pk"] + return campos + + def encontra_conflitos_tipo_autor(): # Encontrei conflito de ids em TipoAutor entre # um registro que existiu na base e foi apagado e um registro ressuscitado.