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.